見出し画像

PySpark 小ネタ select as で externalテーブルを作る

小ネタ

わざわざテーブル定義を作りたくない。でも後続のHiveでETLしたい。
そんな時には、以下のようにexternalテーブルを作って、後続の処理で参照することができます

df=spark.sql("""select 1 as a""")
df.printSchema()
df.show()
df.createOrReplaceTempView("a")

#ちょろっとロケーションを指定できるのがミソ
spark.sql("""create external table IF NOT EXISTS adhoc.z Location './b' as select * from a""")



#結果表示
spark.sql("""select * from a union all select * from adhoc.z""").show()
+---+
|  a|
+---+
|  1|
|  1|
+---+

パーティションを追加することはできないの単純な洗い替えや
テーブルになる前の、複数のrawデータを読み込んで一つのテーブルを作り出す際には、利用できるかと思います。

この記事が気に入ったらサポートをしてみませんか?