我有一个Spark数据框,我想获取统计数据
stats_df = df.describe(['mycol'])
stats_df.show()
+-------+------------------+
|summary| mycol|
+-------+------------------+
| count| 300|
| mean| 2243|
| stddev| 319.419860456123|
| min| 1400|
| max| 3100|
+-------+------------------+
如何使用
min
max
mycol
列值提取summary
中min
和max
的值?如何按数字索引进行操作? 最佳答案
好,让我们考虑以下示例:
from pyspark.sql.functions import rand, randn
df = sqlContext.range(1, 1000).toDF('mycol')
df.describe().show()
# +-------+-----------------+
# |summary| mycol|
# +-------+-----------------+
# | count| 999|
# | mean| 500.0|
# | stddev|288.5307609250702|
# | min| 1|
# | max| 999|
# +-------+-----------------+
例如,如果要访问有关stddev的行,则只需将其转换为RDD,收集并将其转换为字典,如下所示:
stats = dict(df.describe().map(lambda r : (r.summary,r.mycol)).collect())
print(stats['stddev'])
# 288.5307609250702
关于python - 根据其他列值(PySpark)从DataFrame获取值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38602973/