2017-05-05 6 views
0

writeメソッドを使用してデータセット/データフレームをhdfsのパーキンズとして保存しようとしています。 パーティションはHDFSで作成されますが、データは空です。空きsparkデータセット中に作成されたHDFSへの書き込み

+0

あなたの 'HiveContext'に対して' dynamic.partition'を 'true'に、' dynamic.partition.mode'を 'nonstrict'に設定しましたか? – philantrovert

+0

しかし、この書き込み操作では、sparkからhdfsに移行する必要がありますか? – Abhi

+0

申し訳ありませんが、あなたの質問を間違って読んでいます。パーティション化されたデータをハイブテーブルに書き込んでいると思いました。 – philantrovert

答えて

1

を提案してください、私はちょうどデータフレームのためにそれをチェックする2.xの

dataset.write.mode("append").partitionBy("empNo").format("parquet").save("hdfs path") 

または

dataset.write.mode(SaveMode.Overwrite).save("hdfs path") 

- 私は、Sparkのバージョンを使用しています。クエリごとに1つの列に分割します。 2つのパーティション化されたフォルダが適切な値で出力フォルダ内に作成されました。私はスパーク1.6で働いていますので、DataSet APIに確認することはできません

df.write.mode(SaveMode.Append) 
    .partitionBy("column_name") 
    .format("parquet") 
    .save("hdfs://namenode/output") 

:各フォルダには、私は、次のコマンドを使用拡張子を持つファイル.gz.parquet

を持っていました。

私はあなたのデータの分割にいくつかの問題があるかもしれないと思う。一部のパーティションは空の場合があります。あなたが書いたコマンドは問題ありません。

関連する問題