TXT文件读取“ EMPTY RECORDS”导致BAD_RECORD

时间:2019-04-05 07:21:29

标签: csv apache-spark text pyspark

我们正在读取一个以制表符分隔的.txt文件,没有值的记录缺少制表符。例如,Thor中的M后的选项卡丢失。然后使用Pyspark read读取文件,将记录移至BAD_RECORD。

Name    Age Sex Final
Cold    18  M   Yes
Bold    20  M   No
Thor    30  M
Ice 40

Pyspark代码示例

source_schema = StructType([
 StructField("Name", StringType(), True),
 StructField("Age", StringType(), True),
 StructField("Sex", StringType(), True),
 StructField("Final", StringType(), True)])

in_delimiter = "\t"

df_raw_file = sparkSession.read \
            .format("csv") \
            .option("delimiter", in_delimiter) \
            .option("header", "false") \
            .option("inferSchema", "true") \
            .option("nullValue", "null") \
            .option("treatEmptyValuesAsNulls", "true") \
            .option("columnNameOfCorruptRecord", "BAD_RECORD") \
            .schema(source_schema) \
            .load("CSV_READ.txt")

已经尝试过 treatEmptyValuesAsNulls nullValue ,但是仍然没有运气,因为记录仍在BAD_RECORD中捕获。

还有其他可以尝试的Spark选项吗?

0 个答案:

没有答案