【发布时间】:2019-11-03 13:14:34
【问题描述】:
我有两个文本文件:
具有以下形式的翻译/别名:
123 456
2 278
456 99999
...
还有一个,每行三个条目:
34 456 9900
111 333 444
234 2 562
...
如果可能,我想翻译第二列,例如,我希望输出数据框包含行:
34, 99999, 9900
111, 333, 444
234, 278, 562
读取文本文件可以正常工作。但是,我在翻译 b 列时确实遇到了问题。 这是我现在的基本代码结构:
translation = sc.textFile("transl.txt")\
.map(lambda line: line.split(" "))
def translate(string):
x = translation.filter(lambda x: x[0] == string).collect()
if x == []:
return string
return x[0][1]
d = sc.textFile("text.txt")\
.map(lambda line: line.split(" "))\
.toDF(["a", "b", "c"])\
.withColumn("b", translate(d.b))\
除了最后一行,一切正常。 我知道将函数应用于 spark 中的列并不容易,但是我不知道该怎么做。
【问题讨论】:
标签: python dataframe apache-spark pyspark