2017-05-09 41 views
1

我正在使用数据帧写入方法以实木复合格式写入文件。作业失败,出现java.lang.illegalArgumentException,但堆栈跟踪未显示导致此故障的确切记录或字段。调试火花作业特定记录/列

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

回答

1

简短回答:不,Spark [当前]不支持这种粒度级别的调试。

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

1)input_file_name()可以证明,用于建立数据

2)自定义UDF到的try/catch改造确切的文件,记录问题结果

3)手动过滤掉无法解析记录

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

从星火峰会东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)