Ton*_*ony 5 apache-spark pyspark
使用以下一列数据框,
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('test').getOrCreate()
df = spark.createDataFrame([[1],[2],[3],[4],[5]])
df.show()
+---+
| _1|
+---+
| 1|
| 2|
| 3|
| 4|
| 5|
+---+
Run Code Online (Sandbox Code Playgroud)
使用 rdd 的直方图函数计算直方图。
df.rdd.histogram(2)
Run Code Online (Sandbox Code Playgroud)
然后我收到一个错误:无法在 RDD 中生成非数字的桶。我很困惑,因为我的数据框中的所有值都是数字。
问题是这df.rdd
是行的 RDD,而行不是数字。您可以通过在 pyspark shell 中调用 collect 来验证它,例如:
>>> df.rdd.collect()
[Row(_1=1), Row(_1=2), Row(_1=3), Row(_1=4), Row(_1=5)]
Run Code Online (Sandbox Code Playgroud)
要完成这项工作,您可以简单地从行中提取数字列,如下所示:
>>> df.rdd.map(lambda x : x[0]).histogram(2)
([1, 3, 5], [2, 3])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
783 次 |
最近记录: |