Ram*_*ami 9 apache-spark apache-spark-sql apache-zeppelin
当我describe在DataFrame上调用函数时出现问题:
val statsDF = myDataFrame.describe()
Run Code Online (Sandbox Code Playgroud)
调用describe函数会产生以下输出:
statsDF: org.apache.spark.sql.DataFrame = [summary: string, count: string]
Run Code Online (Sandbox Code Playgroud)
我可以statsDF通过电话正常显示statsDF.show()
+-------+------------------+
|summary| count|
+-------+------------------+
| count| 53173|
| mean|104.76128862392568|
| stddev|3577.8184333911513|
| min| 1|
| max| 558407|
+-------+------------------+
Run Code Online (Sandbox Code Playgroud)
我想现在得到标准差和平均值statsDF,但是当我试图通过做类似的事情来收集值时:
val temp = statsDF.where($"summary" === "stddev").collect()
Run Code Online (Sandbox Code Playgroud)
我越来越Task not serializable异常了.
我打电话时也面临同样的异常:
statsDF.where($"summary" === "stddev").show()
Run Code Online (Sandbox Code Playgroud)
看起来我们无法过滤函数生成的DataFrame describe()?
我考虑过一个包含一些健康疾病数据的玩具数据集
val stddev_tobacco = rawData.describe().rdd.map{
case r : Row => (r.getAs[String]("summary"),r.get(1))
}.filter(_._1 == "stddev").map(_._2).collect
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11439 次 |
| 最近记录: |