Java Spark行级错误处理,如何获取行级错误消息
我有一个csv文件,我正在通过spark加载。我想区分好记录和坏记录,还想知道坏记录的每一行级别错误 我正在指定一个模式,可以像这样捕获损坏的_记录,但是如何获取每个不同损坏记录的错误消息Java Spark行级错误处理,如何获取行级错误消息,java,apache-spark,Java,Apache Spark,我有一个csv文件,我正在通过spark加载。我想区分好记录和坏记录,还想知道坏记录的每一行级别错误 我正在指定一个模式,可以像这样捕获损坏的_记录,但是如何获取每个不同损坏记录的错误消息 --------------+-----------+----------+--------------------+-------+--------------------+ |service_point_number|energy_type|is_enabled| metadat
--------------+-----------+----------+--------------------+-------+--------------------+
|service_point_number|energy_type|is_enabled| metadata|testint| _corrupt_record|
+--------------------+-----------+----------+--------------------+-------+--------------------+
| 90453512| E| false|Address1@420#Addr...| 23| null|
| 14802348| G| false|Address1@420#Addr...| 24| null|
| null| null| null| null| null|99944990,E,12,Add...|
| 78377144| E| false| 123| 26| null|
| 25506816| G| false|Address1@420#Addr...| 27| null|
| 48789905| E| true|Address1@420#Addr...| null|48789905,E,true,A...|
| 20283032| E| false|Address1@420#Addr...| 29| null|
| 67311231| G| false|Address1@420#Addr...| 30| null|
| 18240558| G| false|Address1@420#Addr...| 31|18240558,G,false,...|
| 42631153| E| false|Address1@420#Addr...| 32| null|
+--------------------+-----------+----------+--------------------+-------+--------------------+
spark from 2.x中集成的spark csv软件包提供
请参见位于的CSV示例,该示例可以工作,但您无法在指定路径中找到它的原因可能是,在触发操作之前,实际执行不会启动。在您的代码
spark之后尝试使用df.show()
。读取…
,然后再次查看输出文件现在是否显示在路径中。已经尝试过此操作,但找不到任何在HDFS中写入坏记录的文件。我使用的是spark版本2.3.1。我使用的是spark版本2.3.1val df=spark.read.format(“cs”).option(“header”,“true”).option(“badRecordsPath”,““/sampledata/test”).schema(schema).csv(“/sampledata/test.csv”)
I尝试在HDFS@georgDid中查找/sampledata/test您尝试在Databricks或开源spark中运行它吗?可能只有在那里才有此功能。但我不是100%确定。我在EMR中使用spark,在那里看不到可用的badRecordsPath选项。
badRecordsPath