Spark:修改CSV文件并写入其他文件夹

时间:2017-02-09 18:14:23

标签: apache-spark apache-spark-sql

民间,

我们有一个要求,我们想要对CSV文件进行小的转换,并使用spark将其写入其他HDFS文件夹。

例如/input/csv1.txt(至少4 GB文件)

ID,Name,Address
100,john,some street

输出应该在文件中(output / csv1.txt)。基本上,在分析地址后会添加两个新列(记录顺序应与输入文件相同)

ID,Name,Address,Country,ZipCode
100,Name,Address,India,560001

看起来火花很难做到这一点。

1 个答案:

答案 0 :(得分:1)

嗯,我不知道你的意思是什么没有简单的方法 - chrome.alarms.onAlarm.addListener(function(alarm) { var currentTime = (new Date).getTime(); var alarmTimePlus = alarm.scheduledTime + 2000 if (alarmTimePlus > currentTime) { showNotification(); // custom function that runs chrome.notifications.create } }); 包让你很容易恕我直言。根据您运行的Spark版本,您需要执行以下操作之一:

Spark 2.x

spark-csv

Spark 1.x

val df = spark.read.csv("/path/to/files/")
df
 .withColumn("country", ...)
 .withColumn("zip_code", ...)
 .write
 .csv("/my/output/path/")

请注意,我刚刚将val df = sqlContext.read.format("com.databricks.spark.csv").load(/path/to/my/files/") df. .withColumn("country", ...) .withColumn("zip_code", ...) .write .format("com.databricks.spark.csv") .save("/my/output/path/") 放在此处 - 您可能正在加入包含国家/地区和邮政编码的其他数据框,但我的示例只是为了说明您如何使用spark-csv包读取和写入它(已经构建到Spark 2.x中)