调试spark作业 - 特定记录/列

时间:2017-05-09 04:10:01

标签: apache-spark dataframe spark-dataframe

我使用dataframe write方法以镶木地板格式编写文件。作业以java.lang.illegalArgumentException失败,但堆栈跟踪未显示确切的记录或导致此失败的字段。

有没有办法将这种信息添加到日志中(哪些数据无法转换为Date?),无需(a)猜测或(b)将数据加载为字符串然后编写脚本看看哪一个不是约会对象?

1 个答案:

答案 0 :(得分:1)

简短的回答:不,Spark [目前]本身不支持那种精细的调试级别。

但是,您可以使用其中一些想法。

1)input_file_name()可以显示用于构建数据的确切文件

2)自定义UDF尝试/捕获转换,记录问题记录

3)手动过滤掉不可解析的记录

4)使用模式选项(许可等)

来自Spark Summit East 2017的潜在相关演讲:https://spark-summit.org/east-2017/events/keeping-spark-on-track-productionizing-spark-for-etl/

模式文档:https://spark.apache.org/docs/2.0.1/api/java/org/apache/spark/sql/DataFrameReader.html#csv(scala.collection.Seq)