【发布时间】:2016-09-21 06:27:55
【问题描述】:
我正在尝试将文件从 S3 保存到 hdfs,按年、月和日分区。 我有 S3 中的文件路径以及 RDD 中的日期信息。
def saveFile(filePath):
df = sqlContext.read.format("com.databricks.spark.csv")
.options(delimiter='|',header=True)
.load(filePath[0],schema=schema)
df.write.mode("overwrite")
.save(targetDir+"/year="+filePath[1]+"/month="+filePath[2]+"/day="+filePath[3])
filePathsRDD.foreach(saveFile)
RDD.foreach 函数失败并出现错误:
TypeError: 'JavaPackage' 对象不可调用
【问题讨论】:
-
嗨,你试过通配符吗? stackoverflow.com/questions/37639956/…
-
我想将每天的文件保存在一个单独的文件夹中,这就是我每天阅读它们的原因。我也可以通过在数据框中读取所有内容(使用通配符)并将其保存为镶木地板,按日期分区来做到这一点。但是,此操作需要驱动程序中的较高 resultSize,这是我们将来扩展时的问题。