【发布时间】:2020-08-16 23:36:24
【问题描述】:
我正在尝试读取每一行数据帧并将行数据转换为自定义 bean 类。但这里的问题是,代码没有被执行。为了检查,我编写了多个打印语句,但df.rdd.map{row=>} 中的打印语句都没有执行,就好像整个代码块被转义了一样。
代码sn-p:
print("data frame:", df.show()).
df.rdd.map(row => {
// Debugging
println("Debugging")
if(row.isNullAt(0)) {
println("null data")
} else {
println(row.get(0).toString)
}
val employeeJobData = new EmployeeJobData
if(row.get(0).toString == null || row.get(0).toString.isEmpty){
employeeJobData.setEmployeeId("NULL_KEY_VALUE")
} else {
employeeJobData.setEmployeeId(row.get(0).toString)
}
employeeJobDataList.add(employeeJobData)
} )
df.show()的输出:
|employee_id|employee_name|employee_email|paygroup|level|dept_id|
+-----------+-------------+--------------+--------+-----+-------+
|13 | null| null| null| null| null|
|14 | null| null| null| null| null|
|15 | null| null| null| null| null|
|16 | null| null| null| null| null|
|17 | null| null| null| null| null|
+-----------+-------------+--------------+--------+-----+-------+
【问题讨论】:
-
你能在这里发布完整的代码吗?
-
在Spark中,在执行任何收集操作之前,它不会执行代码。
-
...如果/当它被执行,你应该会在执行者的日志中看到输出,因为
map将被分发。
标签: scala apache-spark apache-spark-sql rdd