TypeError:' JavaPackage'使用rdd.foreach()时,对象不可调用

时间:2016-09-20 20:51:33

标签: pyspark rdd

我试图将文件从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'对象不可调用

1 个答案:

答案 0 :(得分:0)

这是不可能的。首先收集:

>>> for path in filePathsRDD.collect():
...     saveFile(path)