选择RDD中的列

时间:2017-11-09 14:35:44

标签: pyspark rdd

我正在尝试从RDD数据中选择特定列。我的数据如下:

colA | colB
1    | cat,bat
2    | cat
3    | horse,elephant, mouse

我想提取长度不一的colB。我试过了:

coldata = rdd.map(lambda x: x[1])

仅提取cat,cat,horse 我希望提取的数据是:

colB
cat,bat
cat
horse,elephant,mouse

我通过执行以下操作创建RDD:

sqlContext = SQLContext(sc)
data = sc.textFile("filename").map(lambda line: line.split(","))

1 个答案:

答案 0 :(得分:1)

所以在评论中讨论之后我发现你的列有逗号作为分隔符。同时你用逗号分隔" colB"柱。在您的脚本中,您尝试通过用逗号分隔列来解析列。所以要么使用分号(或其他任何作为列的分隔符)或更改colB中值的分隔符:

文件:

colA;colB
1;cat,bat
2;cat
3;horse,elephant, mouse

然后使用此代码获取RDD:

rdd = sc.textFile("filename").map(lambda line: line.split(";"))