2017-01-19 11 views
1

存在し、私は次のように構築されたデータセットがあります。スパーク保存DataSetはすでにエラー

Encoder<MyDomain> encoder= Encoders.bean(MyDomain.class); 
Dataset<MyDomain> stdDS = sc.createDataset(filteredRecords.rdd(), encoder); 
Dataset<Row> rowDataset = stdDS.withColumn("idHash", stdDS.col("id").substr(0, 5)); 

を私はその後、実行して出力するデータセットをしようとしています:

 rowDataset.write().partitionBy("keep", "idHash").save("test.parquet"); 

ときI 「keep」と「idHash」の両方でパーティション化しています。

File already exists: file:/C:/dev/test.parquet/_temporary/0/_temporary/attempt_201701191219_0001_m_000000_0/keep=true/idHash=0a/part-r-00000-2c2e0494-f6a7-47d7-88e2-f49dffb608d1.snappy.parquet 

複数のパーティションを使用してデータセットを正しく出力するにはどうすればよいですか。フォルダは空の状態で始まります。このエラーは、ローカルマシンで実行した場合に発生します。本番時には、このデータはS3に出力されるため、ローカルファイルシステムとAWS S3の両方で動作する必要があります。

おかげで、 ネイサン

+0

を試してみてください、あなたはこの '書き込み()。モード( "追加")'や '書き込み()。モード( "上書き")を'配置しようとしました? –

+0

私は追加しようとしましたが、同じエラーが発生したので、どちらのオプションも必要ではないと思います。 –

+0

これに解決策がありましたか? – rohitkulky

答えて

0

rowDataset.repartition("keep", "idHash").write().partitionBy("keep", "idHash").save("test.parquet"); 
関連する問題