2017-03-20 9 views
0

多くの検索で寄木細工のテーブルを作成することはできません。Pysparkのようなものでハイブメタストアにテーブルを作成するためにpysparkコードを指すハイブ

hivecx.sql("...create table syntax that matches the dataframe...") df.write.mode("overwrite").partitionBy('partition_colname').insertInto("national_dev.xh_claimline")

Iは、書き込み/保存/ insertintoとモードの多くのバリエーションを試してみましたが、常に取得:

Caused by: java.io.FileNotFoundException: File does not exist: /user/hive/warehouse/national_dev.db/xh_claimline/000000_0

テーブルディレクトリは、Hadoopの中に存在するが、000000_0サブディレクトリ(複数可)しません。私はこれがテーブルが空で、まだ書かなかったからだと思った。 Clouderaのオン

hadoop fs -ls /user/hive/warehouse/national_dev.db/xh_claimline Found 2 items drwxrwxrwt - mryan hive 0 2017-03-20 12:26 /user/hive/warehouse/national_dev.db/xh_claimline/.hive-staging_hive_2017-03-20_12-26-35_382_2703713921168172595-1 drwxrwxrwt - mryan hive 0 2017-03-20 12:29 /user/hive/warehouse/national_dev.db/xh_claimline/.hive-staging_hive_2017-03-20_12-29-40_775_73045420253990110-1

、スパークバージョン: 17/03/20十一時45分21秒INFO spark.SparkContext:実行スパークバージョン1.6.0

答えて

0

は、データの書き込みここでは、INSERT INTOステートメントを見てモードoverwriteが使用されている場合は、に挿入する必要はありません。直接saveAsTableparquet形式を使用してください。ここに変更されたステートメントです: -

df = hivecx.sql("...create table syntax that matches the dataframe...") 
df.write.mode("overwrite").format("parquet").partitionBy('partition_colname').saveAsTable("national_dev.xh_claimline") 
+0

ありがとう@ rakesh-kumar - 私は前にそれを試しましたが、私は今確かにもう一度試しました。私はまったく同じ結果を得る。 '原因:java.io.FileNotFoundException:ファイルが存在しません:/ user/hive/warehouse/national_dev.db/xh_claimline/000000_0' –

+0

@MattRyanあなたはnameという名前のdbを持っていないと思いますのでdbの存在を確認してください巣箱から –

関連する問題