【问题标题】:How to get the numeric columns from DataFrame of Pyspark and calculating the zscore如何从 Pyspark 的 DataFrame 中获取数字列并计算 z 分数
【发布时间】:2018-06-17 07:32:43
【问题描述】:
sparkSession = SparkSession.builder.appName("example").getOrCreate()
df = sparkSession.read.json('hdfs://localhost/abc/zscore/')

我能够从 hdfs 读取数据,并且我想仅计算数字列的 zscore

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql hdfs


    【解决方案1】:

    您可以将 df 转换为 Pandas 并计算 zscore

    sparkSession = SparkSession.builder.appName("example").getOrCreate()
    df = sparkSession.read.json('hdfs://localhost/SmartRegression/zscore/').toPandas()
    num_cols = df._get_numeric_data().columns
    results = df[num_cols].apply(zscore)
    print(results)
    

    【讨论】:

    • toPandas() 将尝试将整个数据集加载到内存中。这种方法不适用于大型数据集。
    • 这告诉您如何转换为 pandas 并从 pandas 数据框中获取数字列。这可能(或可能不会)达到预期的结果,但没有回答问题 imo
    【解决方案2】:

    toPandas() 不适用于大数据集,因为它会尝试将整个数据集加载到驱动程序内存中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      相关资源
      最近更新 更多