PySpark读入一个大的自定义行结束文件

时间:2018-02-14 02:48:38

标签: apache-spark pyspark apache-spark-sql line-endings

文件为20 GB,行结束字符为␀。下面是PySpark代码:

text_file = sc.textFile(file_name)
counts = text_file.flatMap(lambda line: line.split("␀"))
counts.count()

错误如下: 换行前的字节太多:2147483648

问题:如何在大型自定义行结束文件中使用PySpark读取?

1 个答案:

答案 0 :(得分:1)

您可以使用与creating spark data structure from multiline record

相同的技巧
rdd = sc.newAPIHadoopFile(
    '/tmp/weird',
    'org.apache.hadoop.mapreduce.lib.input.TextInputFormat',
    'org.apache.hadoop.io.LongWritable',
    'org.apache.hadoop.io.Text',
    conf={'textinputformat.record.delimiter': '␀'}
).values()