2017-03-17 110 views
0

我在下面的分隔符鍵值輸入數據集,從輸入數據中獲取值

key1:value1|key2:value2|key3:value3 
key1:value4|key2:value5|key3:value6 

我想創建一個格式RDD /數據幀作爲

value1|value2|value3 
value4|value5|value6 

我想這使用flatmap到分離每個項目和映射從記錄中提取值,然後我得到我的輸出在不同的行。

回答

1

可以映射這樣的:

(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"])) 
+0

謝謝....我缺少的元組的一部分。 – user491

+0

如果我有一些行像,其中一些字段包含分隔符如 - key1:value1 | key2:value2 | key3:bad |值,該怎麼辦?我試圖用正則表達式 - ((?<!\^\ ^)\^\ ^(?!\^\ ^))但它不起作用。 – user491