我有一個簡單的大小爲7 GB的文件,其中包含由| .I分隔的兩列的每行都從此文件創建了RDD,但當我在這個RDD上使用映射或過濾器轉換時,我得到太多的字節異常。Spark map/Filter throws java.io.IOException:換行符之前的字節太多:2147483648
下面是我的文件中的示例數據。
116010100000000007 | 33448
116010100000000014 | 13520
116010100000000021 | 97132
116010100000000049 | 82891
116010100000000049 | 82890
116010100000000056 | 93014
116010100000000063 | 43434
116010100000000063 | 43434
這裏是代碼
val input = sparkContext.textFile("hdfsfilePath");
input.filter(x=>x.split("|")(1).toInt > 15000).saveAsTextFile("hdfs://output file path")
下面是我收到的異常。
java.io.IOException: Too many bytes before newline: 2147483648
at org.apache.hadoop.util.LineReader.readDefaultLine(LineReader.java:249)
at org.apache.hadoop.util.LineReader.readLine(LineReader.java:174)
at org.apache.hadoop.mapreduce.lib.input.UncompressedSplitLineReader.readLine(UncompressedSplitLineReader.java:94)
at org.apache.hadoop.mapred.LineRecordReader.<init>(LineRecordReader.java:136)
如果您提供實際的代碼+您獲得的堆棧跟蹤將會很有幫助。 –
請用上面的代碼編輯問題。 –
代碼在哪裏? –