Python 从输入数据中获取值

Python 从输入数据中获取值,python,apache-spark,pyspark,spark-dataframe,rdd,Python,Apache Spark,Pyspark,Spark Dataframe,Rdd,我在keyvalue中输入了数据集,带分隔符,如下所示 key1:value1|key2:value2|key3:value3 key1:value4|key2:value5|key3:value6 我想创建一个rdd/dataframe,格式如下 value1|value2|value3 value4|value5|value6 我尝试使用flatmap分离每个项目,并使用map从记录中提取值,然后以不同的行获取输出。您可以这样映射: (rdd # Split b

我在keyvalue中输入了数据集,带分隔符,如下所示

key1:value1|key2:value2|key3:value3  
key1:value4|key2:value5|key3:value6  
我想创建一个rdd/dataframe,格式如下

value1|value2|value3  
value4|value5|value6  
我尝试使用flatmap分离每个项目,并使用map从记录中提取值,然后以不同的行获取输出。

您可以这样映射:

(rdd

    # Split by "|" and then for each item by ":"
    .map(lambda xs: [x.split(":")[1] for x in xs.split("|")])
    # Convert to tuple
    .map(tuple)
    .toDF(["key1", "key2", "key3"]))

如果我有一些行,比如,其中一些字段包含分隔符,比如-key1:value1 | key2:value2 | key3:bad | value。我用regex-(?