0
1

More than 1 year has passed since last update.

Databricks ( Spark ) にて Hive パーティションとして利用しているカラムと同じカラムのデータを保持しているソースを読み取る場合の動作確認

Last updated at Posted at 2022-12-07

概要

Databricks ( Spark ) にて Hive パーティションとして利用しているカラムと同じカラムのデータを保持しているソースを読み取る場合には、ソースのファイルで保持している値より Hive パーティションの値が優先されるようです。下記のような CSV ファイル(ingest_date2020-01-01)を、ingest_date2020-01-02の Hive パーティション(例:ingest_date=2020-01-02)の配下に配置したところ、Spark データフレームでは ingest_date2020-01-02として表示されました。本記事では、その検証結果を共有します。

a,ingest_date
1,2020-01-01
path = 'dbfs:/FileStore/manabian/hive_tet'
file_path = f'{path}/ingest_date=2020-01-02/test.txt'

image.png

動作確認

Hive パーティションと同じカラム名をもたないデータの場合

path = 'dbfs:/FileStore/manabian/hive_tet'
file_path = f'{path}/ingest_date=2020-01-02/test.txt'

data="""
a
1
""".strip()
 
dbutils.fs.put(file_path, data, True)

image.png

df = (
    spark.read
    .format("csv")
    .option("header", "true")
    .load(path)
)
df.display()

image.png

Hive パーティションと同じカラム名をもつデータの場合

path = 'dbfs:/FileStore/manabian/hive_tet'
file_path = f'{path}/ingest_date=2020-01-02/test.txt'

data="""
a,ingest_date
1,2020-01-01
""".strip()
 
dbutils.fs.put(file_path, data, True)

image.png

df = (
    spark.read
    .format("csv")
    .option("header", "true")
    .load(path)
)
df.display()

image.png

image.png

リソースを削除

dbutils.fs.rm(path,True)

image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1