2016-09-20 3 views
0

私はS3からhdfsにファイルを保存しようとしています。年、月、日で区切っています。 私はS3のファイルのパスとRDDの日付情報を持っています。TypeError:rdd.foreach()を使用しているときに 'JavaPackage'オブジェクトが呼び出せません

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' object is not callable

+0

こんにちは、ワイルドカードを試しましたか? http://stackoverflow.com/questions/37639956/how-to-import-multiple-csv-files-in-a-single-load – GwydionFR

+0

毎日のファイルを別々のフォルダに保存したいのですがその日までに読書しています。また、データフレーム(ワイルドカードを使用)ですべてを読み取って寄木細工として保存し、日付別に分割することで、これを行うこともできます。しかし、この操作ではドライバでresultSizeが高くなる必要があります。 –

答えて

0

ことができません。最初に収集する:

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

私はそれができることを知っています。私は毎日と何年ものデータのための道を持っているので、私はそれを配布しようとしています。 –

+0

あなたは、申し訳ありません。 –

関連する問題