【问题标题】:pyspark - Read files with custom delimiter to RDD?pyspark - 将带有自定义分隔符的文件读取到 RDD?
【发布时间】:2017-12-16 19:52:56
【问题描述】:

我是 pyspark 的新手,我正在尝试读取 RDD 行并将其合并为一行。

假设我有以下文本文件:

A1 B1 C1
A2 B2 C2 D3
A3 X1 YY1
DELIMITER_ROW
Z1 B1 C1 Z4
X2 V2 XC2 D3
DELIMITER_ROW
T1 R1
M2 MB2 NC2
S3 BB1 
AQ3 Q1 P1"

现在,我想将每个部分(DELIMITER_ROW 之间)出现的所有行合并为一行,并返回这些合并行的列表。

我想创建这样的列表:

[[A1 B1 C1 A2 B2 C2 D3 A3 X1 YY1]
 [Z1 B1 C1 Z4 X2 V2 XC2 D3]
 [T1 R1 M2 MB2 NC2 S3 BB1 AQ3 Q1 P1]]

如何在 pyspark 中使用 RDD 完成?

现在我知道如何读取文件并过滤掉分隔符行:

sc.textFile(pathToFile).filter(lambda line: DELIMITER_ROW not in line).collect()

但我不知道如何将每个部分中的行减少/合并/组合/分组为一行。

谢谢。

【问题讨论】:

    标签: apache-spark pyspark rdd bigdata


    【解决方案1】:

    除了读取和拆分,您可以使用hadoopConfiguration.set设置分隔行的分隔符,然后拆分行。

    spark.sparkContext.hadoopConfiguration.set("textinputformat.record.delimiter", "DELIMITER_ROW")

    希望这会有所帮助!

    【讨论】:

    • 谢谢,很有帮助。在 pyspark 中(使用 zeppelin)我写: conf = sc._jsc.hadoopConfiguration() conf.set("textinputformat.record.delimiter", "DELIMITER_ROW") ....MY CODE conf.set("textinputformat.record.delimiter ", "\n")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2021-08-14
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    相关资源
    最近更新 更多