Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对spark dataframe中的空值列应用聚合时出错_Dataframe_Apache Spark - Fatal编程技术网

对spark dataframe中的空值列应用聚合时出错

对spark dataframe中的空值列应用聚合时出错,dataframe,apache-spark,Dataframe,Apache Spark,我正在尝试在AmountPayed列上应用聚合,该列中也有一些null。 我所做的是使用when-other将其设置为0。 之后,我应用了聚合,并在特定的DF上运行了show。 但它仍然抛出空指针异常。 我不在我想念的地方。如果有人帮忙,那就太好了 transactionId|customerId|itemId|amountPaid|amountpaid1| +-------------+----------+------+----------+-----------+ | 1

我正在尝试在AmountPayed列上应用聚合,该列中也有一些null。 我所做的是使用when-other将其设置为0。 之后,我应用了聚合,并在特定的DF上运行了show。 但它仍然抛出
空指针异常
。 我不在我想念的地方。如果有人帮忙,那就太好了

transactionId|customerId|itemId|amountPaid|amountpaid1|
+-------------+----------+------+----------+-----------+
|          111|         1|     1|     100.0|      100.0|
|          112|         2|     2|     505.0|      505.0|
|          113|         3|  null|      null|        0.0|
|          114|         4|     4|     600.0|      600.0|
|          115|         1|     2|     510.0|      510.0|
|          116|         1|     2|     520.0|      520.0|
|          117|         1|  null|      null|        0.0|
|          118|         1|     2|    4400.0|     4400.0|
|          119|         2|     3|    3300.0|     3300.0|
|          120|         1|     2|    1500.0|     1500.0|
|          121|         1|     4|    2500.0|     2500.0|
|          122|         1|  null|      null|        0.0|
|          123|         1|     4|    1100.0|     1100.0|
|          124|         1|     1|    5100.0|     5100.0|
+-------------+----------+------+----------+-----------+

val salesDF = sqlContext.read.format("csv").option("header","true").option("inferSchema","true").load("file:///home/cloudera/projects/spark-sql/src/main/resources/sales-error.csv")

val defaultDF = salesDF.withColumn("amountpaid",when(col("amountpaid").isNullll,0).otherwise(col("amountpaid")))

val aggDF = filterDF.groupBy("customerId").agg(sum("amountpaid1").as("total")).show

如果数据为空,请尝试使用coalesce函数将其默认为0。但我仍然收到一个错误,错误为19/11/26 06:31:40错误执行器:检测到托管内存泄漏;size=67371008字节,TID=6 19/11/26 06:31:40错误执行者:6.0阶段(TID 6)java.lang.NullPointerException中任务0.0中的异常