如何验证我的spark-dataframe是否实际被填充?

时间:2018-08-03 19:35:35

标签: scala apache-spark

我正在编写一个脚本来对数据库执行一些ETL。 我有一个从表填充的现有数据框。 我能够获得数据框中的行数,并再次检查它是否与数据库中的行数匹配

var originalDF = spark.table("XYZ").select(" ").toDF(" ")
println(originalDF.count())

现在,我正在尝试映射原始表的每一行以使用val transformedDF = originalDF.map(dataTransform(_))执行一些ETL操作 但是,即使现在我有一个print语句试图打印出finalDF中的行数,解释器也会跳过该语句,并且什么都不会打印出来。即使最后一个表示“完成的转换”的打印语句也不会打印出来。我的dataTransform做的事情很简单(测试起来更简单)

println(finalDF.count())
println("Finished Transform")

有人知道为什么我的map操作之后的语句会被跳过吗?我知道scala的评估很懒,因此我怀疑地图操作可能实际上没有进行。

def dataTransform (tr:Row): Record.BookRecord = {
    val field1 =  tr.getAs[String]("field1")
    val field2 =  tr.getAs[String]("field2")
    val field3 =  tr.getAs[String]("field3")

    Record.BookRecord(
      field_1 = field1,
      field_2 = field2,
      field_3 = field3
    )
}

0 个答案:

没有答案