我可以用火花来做以下事情吗?我有三个文件要合并和更改内容:
这能用火花吗?此外,我将考虑Sed或Awk,如果可能的话,使用这些工具。我知道以上使用Python是可能的,但我更喜欢使用Spark来进行数据操作和更改。有什么建议吗?提前谢谢。
发布于 2017-01-06 22:25:41
这是在awk,以防万一。请注意文件顺序:
$ awk 'NR==FNR{ a[$1]=$2;next }{ $NF=($NF in a?a[$NF]:$NF) }1' file3 file1 file2输出:
first_name last_name address zip_code browser_type
John Doe 111 New Drive, Ca 11111 Chrome
Mary Doe 133 Creator Blvd, NY 44499 Safari
Mike Coder 13 Jumping Street UT 66499 FireFox解释:
NR==FNR { # process browser_type file
a[$1]=$2 # remember remember the second of ...
next } # skip to the next record
{ # process the other files
$NF=( $NF in a ? a[$NF] : $NF) } # replace last field with browser from a
1 # implicit print发布于 2017-01-06 21:13:11
这是可能的。读取标题:
with open("column_header.tsv") as fr:
columns = fr.readline().split()读取data_file.tsv
users = spark.read.option("delimiter", "\t").csv("data_file.tsv").toDF(*columns)读取called browser_type.tsv
browsers = spark.read.csv("called browser_type.tsv") \
.toDF("browser_type", "browser_name")加入:
users.join(browser, "browser_type", "left").write.csv(path)https://stackoverflow.com/questions/41513340
复制相似问题