2016-09-11 9 views
0

からスキーマをinferingない:Pyspark SaveAsTableは、私は次の操作を実行して、SQLクエリの出力からテーブルを作成しようとしていますSQL

sqlContext = HiveContext(self.sc) 
j = "select a as a1, b as b1, c as c1 from x" 
df = self.sqlContext.sql(j) 
df.write.saveAsTable(target_table) 

これは、2列のテーブル節約 - の代わりに、キーと値を列a1、b1、c1。私はここでスキーマを定義していないので、これが起こっていると思います。しかし、スキーマを自動的に推測するために使用されていた廃止予定のdf.saveAsTable(テーブル)を扱うために同じ手法を使用しました。

新しいDataFrameWriterで変更されたことはありますか?

答えて

0

saveAsTableを使用するときにフォーマットを指定する必要があると思います。

ただし、DataFrameをHiveテーブルに保存する別の方法があります。

  1. 一時ビューを作成します。

    df.createOrReplaceTempView("df")

  2. この一時ビューからテーブルを作成するために実行スパークSQL。

    spark.sql("create table if not exists tbName as select * from df")

関連する問題