2016-12-26 2 views
0

外部のハイブテーブルにデータフレームを格納しようとしています。私は、次のアクション実行時:テーブルが代わりに存在することになっていたHDFS位置でスパークデータフレームをハイブに非圧縮のテキスト形式で格納する方法

recordDF.write.option("path", "hdfs://quickstart.cloudera:8020/user/cloudera/hadoop/hive/warehouse/VerizonProduct").saveAsTable("productstoreHTable") 

を私はこの取得:

を-rw-R - r--の3 ClouderaのClouderaの0 2016-12-25 18:58 hadoop /ハイブ/倉庫/ VerizonProduct/_SUCCESS

-rw-r-r-- 3 cloudera cloudera 482 2016-12-25 18:58 hadoop /ハイブ/ウェアハウス/ VerizonProduct/part-r-00000-0acdcc6d-893b-4e9d-b1d6-50bf02bea96a.snappy.parquet

-rw-r-r-- 3 cloudera cloudera 482 2016-12-25 18:58 hadoop /ハイブ/倉庫/ VerizonProduct/part-r-00001-0acdcc6d-893b-4e9d-b1d6-50bf02bea96a.snappy.parquet

-rw-r-r-- 3 cloudera cloudera 482 2016-12-25 18:58 hadoop /ハイブ/ウェアハウス/ VerizonProduct/part-r-00002-0acdcc6d-893b-4e9d-b1d6-50bf02bea96a.snappy。寄木細工

-rw-r-r-- 3 cloudera cloudera 482 2016-12-25 18:58 hadoop /ハイブ/倉庫/ VerizonProduct/part-r-00003-0acdcc6d-893b-4e9d-b1d6-50bf02bea96a。いいえ。parquet

私はどのように非圧縮テキスト形式で保存しますか?あなたはformatオプションを追加することができます

おかげ

答えて

0

recordDF.write.option("path", "...").format("text").saveAsTable("...") 

または

recordDF.write.option("path", "...").format("csv").saveAsTable("...") 
0

形式のCSVでの上記溶液は、「警告を投げたデータのハイブSerDe対応が見つかりませんでしたソースプロバイダCSV。 "テーブルは目的の方法で作成されません。 1つの解決法は、外部テーブルを以下のように作成することができる。 sqlContext.sql("CREATE EXTERNAL TABLE test(col1 int,col2 string) STORED AS TEXTFILE LOCATION '/path/in/hdfs'")

次に、 dataFrame.write.format("com.databricks.spark.csv").option("header", "true").save("/path/in/hdfs")

関連する問題