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