เจชเจฟเจเจฐเฉ เจชเจพเจ เจเฉ, เจเฉฐเจเจพ เจฆเจฟเจจ!
เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ, Neoflex เจฆเฉ Big Data Solutions เจเจพเจฐเฉเจฌเจพเจฐเฉ เจเฉเจคเจฐ เจฆเฉ เจชเฉเจฐเจฎเฉเฉฑเจ เจธเจฒเจพเจนเจเจพเจฐ เจ เจชเจพเจเฉ เจธเจชเจพเจฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจตเฉเจฐเฉเจเจฌเจฒ เจธเจเฉเจฐเจเจเจฐ เจธเจผเฉเจ เจเฉเจธ เจฌเจฃเจพเจเจฃ เจฆเฉ เจตเจฟเจเจฒเจชเจพเจ เจฆเจพ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจ เจตเจฐเจฃเจจ เจเจฐเจฆเฉ เจนเจจเฅค
เจเฉฑเจ เจกเฉเจเจพ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจชเฉเจฐเฉเจเฉเจเจ เจฆเฉ เจนเจฟเฉฑเจธเฉ เจตเจเฉเจ, เจขเจฟเฉฑเจฒเฉ เจขเจพเจเจเฉ เจตเจพเจฒเฉ เจกเฉเจเจพ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจฌเจฃเจพเจเจฃ เจฆเจพ เจเฉฐเจฎ เจ เจเจธเจฐ เจเฉฑเจ เจฆเจพ เจนเฉเฅค
เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเจน เจฒเฉเจ, เจเจพเจ เจตเฉฑเจ-เจตเฉฑเจ เจธเจฟเจธเจเจฎเจพเจ เจคเฉเจ เจเจตเจพเจฌ เจนเฉเฉฐเจฆเฉ เจนเจจ, เจเฉ JSON เจเจพเจ XML เจตเจเฉเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจเฅค เจกเจพเจเจพ Hadoop 'เจคเฉ เจ เฉฑเจชเจฒเฉเจก เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจเจนเจจเจพเจ เจคเฉเจ เจเฉฑเจ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจ เจธเฉเจ เจฌเจฃเจพเจ เจเจ เจธเจผเฉเจเฉเจธ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจง เจเจฐ เจธเจเจฆเฉ เจนเจพเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, Impala เจฆเฉเจเจฐเจพเฅค
เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจเจพเจฐเจเฉเจ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจฆเฉ เจธเจเฉเจฎเจพ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจเจพเจฃเฉ เจจเจนเฉเจ เจเจพเจเจฆเฉ. เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจธเจเฉเจฎ เจจเฉเฉฐ เจตเฉ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจคเจฟเจเจฐ เจจเจนเฉเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ, เจเจฟเจเจเจเจฟ เจเจน เจกเฉเจเจพ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉ, เจ เจคเฉ เจ เจธเฉเจ เจเจนเจจเจพเจ เจฌเจนเฉเจค เจนเฉ เจขเจฟเฉฑเจฒเฉ เจขเจพเจเจเฉ เจตเจพเจฒเฉ เจกเฉเจเจพ เจจเจพเจฒ เจจเจเจฟเฉฑเจ เจฐเจนเฉ เจนเจพเจเฅค
เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจ เฉฑเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเจพ เจเจตเจพเจฌ เจฒเฉเจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ:
{source: "app1", error_code: ""}
เจ เจคเฉ เจเฉฑเจฒเฉเจน เจเจธเฉ เจธเจฟเจธเจเจฎ เจคเฉเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเจพ เจเจตเจพเจฌ เจเจตเฉเจเจพ:
{source: "app1", error_code: "error", description: "Network error"}
เจจเจคเฉเจเฉ เจตเจเฉเจ, เจเฉฑเจ เจนเฉเจฐ เจเฉเจคเจฐ เจจเฉเฉฐ เจธเจผเฉเจ เจเฉเจธ เจตเจฟเฉฑเจ เจเฉเฉเจฟเจ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ - เจตเจฐเจฃเจจ, เจ เจคเฉ เจเฉเจ เจจเจนเฉเจ เจเจพเจฃเจฆเจพ เจเจฟ เจเจน เจเจตเฉเจเจพ เจเจพเจ เจจเจนเฉเจ.
เจ เจเจฟเจนเฉ เจกเฉเจเจพ 'เจคเฉ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจฌเจฃเจพเจเจฃ เจฆเจพ เจเฉฐเจฎ เจฌเจนเฉเจค เจฎเจฟเจเจฐเฉ เจนเฉ, เจ เจคเฉ เจธเจชเจพเจฐเจ เจเฉเจฒ เจเจธเจฆเฉ เจฒเจ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจธเจพเจงเจจ เจนเจจ. เจธเจฐเฉเจค เจกเฉเจเจพ เจจเฉเฉฐ เจชเจพเจฐเจธ เจเจฐเจจ เจฒเจ, JSON เจ เจคเฉ XML เจฆเฉเจตเจพเจ เจฒเจ เจธเจฎเจฐเจฅเจจ เจนเฉ, เจ เจคเฉ เจชเจนเจฟเจฒเจพเจ เจ เจฃเจเจพเจฃ เจธเจเฉเจฎเจพ เจฒเจ, เจธเจเฉเจฎเจพ เจเจตเฉเจฒเฉเจธเจผเจจ เจฒเจ เจธเจฎเจฐเจฅเจจ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค
เจชเจนเจฟเจฒเฉ เจจเจเจผเจฐ 'เจคเฉ, เจนเฉฑเจฒ เจธเจงเจพเจฐเจจ เจฒเฉฑเจเจฆเจพ เจนเฉ. เจคเฉเจนเจพเจจเฉเฉฐ JSON เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจซเฉเจฒเจกเจฐ เจฒเฉเจฃ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจกเฉเจเจพเจซเฉเจฐเฉเจฎ เจตเจฟเฉฑเจ เจชเฉเฉเจนเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจธเจชเจพเจฐเจ เจเฉฑเจ เจธเจเฉเจฎเจพ เจฌเจฃเจพเจเจเจพ, เจจเฉเจธเจเจก เจกเฉเจเจพ เจจเฉเฉฐ เจขเจพเจเจเฉ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจฆเฉเจตเฉเจเจพเฅค เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจนเจฐ เจเฉเจเจผ เจจเฉเฉฐ เจชเจพเจฐเจเจตเฉเจ เจตเจฟเฉฑเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ, เจเฉ เจเจฟ เจเจฎเจชเจพเจฒเจพ เจตเจฟเฉฑเจ เจตเฉ เจธเจฎเจฐเจฅเจฟเจค เจนเฉ, Hive เจฎเฉเจเจพเจธเจเฉเจฐ เจตเจฟเฉฑเจ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจจเฉเฉฐ เจฐเจเจฟเจธเจเจฐ เจเจฐเจเฉเฅค
เจนเจฐ เจเฉเจเจผ เจธเจงเจพเจฐเจจ เจเจพเจชเจฆเฉ เจนเฉ.
เจนเจพเจฒเจพเจเจเจฟ, เจฆเจธเจคเจพเจตเฉเจเจผ เจตเจฟเฉฑเจ เจเฉเจเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจคเฉเจ เจเจน เจธเจชเฉฑเจธเจผเจ เจจเจนเฉเจ เจนเฉ เจเจฟ เจ
เจญเจฟเจเจธ เจตเจฟเฉฑเจ เจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจฆเจพ เจเฉ เจเจฐเจจเจพ เจนเฉเฅค
เจฆเจธเจคเจพเจตเฉเจเจผ เจเฉฑเจ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจฌเจฃเจพเจเจฃ เจฒเจ เจจเจนเฉเจ, เจชเจฐ เจเฉฑเจ เจกเฉเจเจพเจซเฉเจฐเฉเจฎ เจตเจฟเฉฑเจ JSON เจเจพเจ XML เจจเฉเฉฐ เจชเฉเฉเจนเจจ เจฒเจ เจเฉฑเจ เจชเจนเฉเฉฐเจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจ เจฐเจฅเจพเจค, เจเจน เจธเจฟเจฐเจซเจผ เจเจน เจฆเจฟเจเจพเจเจเจฆเจพ เจนเฉ เจเจฟ JSON เจจเฉเฉฐ เจเจฟเจตเฉเจ เจชเฉเฉเจนเจจเจพ เจ เจคเฉ เจชเจพเจฐเจธ เจเจฐเจจเจพ เจนเฉ:
df = spark.read.json(path...)
เจเจน เจธเจชเจพเจฐเจ เจจเฉเฉฐ เจกเฉเจเจพ เจเจชเจฒเจฌเจง เจเจฐเจพเจเจฃ เจฒเจ เจเจพเจซเฉ เจนเฉเฅค
เจ เจญเจฟเจเจธ เจตเจฟเฉฑเจ, เจธเจเฉเจฐเจฟเจชเจ เจเฉฑเจ เจซเฉเจฒเจกเจฐ เจคเฉเจ JSON เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจชเฉเฉเจนเจจ เจ เจคเฉ เจเฉฑเจ เจกเฉเจเจพเจซเฉเจฐเฉเจฎ เจฌเจฃเจพเจเจฃ เจจเจพเจฒเฉเจ เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉ. เจธเจฅเจฟเจคเฉ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉ: เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเฉฑเจ เจเจพเจธ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจนเฉ, เจนเจฐ เจฐเฉเจเจผ เจจเจตเจพเจ เจกเฉเจเจพ เจเจเจเจฆเจพ เจนเฉ, เจเจนเจจเจพเจ เจจเฉเฉฐ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจตเจฟเฉฑเจ เจเฉเฉเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเฉฐเจฆเฉ เจนเฉ, เจเจน เจจเจพ เจญเฉเฉฑเจฒเฉ เจเจฟ เจธเจเฉเจฎ เจตเฉฑเจเจฐเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ.
เจธเจผเฉเจ เจเฉเจธ เจฌเจฃเจพเจเจฃ เจฒเจ เจเจฎ เจธเจเฉเจฎ เจนเฉเจ เจฒเจฟเจเฉ เจ เจจเฉเจธเจพเจฐ เจนเฉ:
1 เจเจฆเจฎ. เจกเฉเจเจพ เจจเฉเฉฐ เจฌเจพเจ เจฆ เจตเจฟเฉฑเจ เจฐเฉเจเจผเจพเจจเจพ เจฐเฉเจฒเฉเจกเจฟเฉฐเจ เจจเจพเจฒ Hadoop เจตเจฟเฉฑเจ เจฒเฉเจก เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเฉฑเจ เจจเจตเฉเจ เจญเจพเจ เจตเจฟเฉฑเจ เจเฉเฉเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจเจน เจฆเจฟเจจ เจฆเฉเจเจฐเจพ เจตเจฟเจญเจพเจเจฟเจค เจธเจผเฉเจฐเฉเจเจคเฉ เจกเฉเจเจพ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจซเฉเจฒเจกเจฐ เจฌเจฃ เจเจพเจเจฆเจพ เจนเฉเฅค
2 เจเจฆเจฎ. เจธเจผเฉเจฐเฉเจเจคเฉ เจฒเฉเจก เจฆเฉเจฐเจพเจจ, เจเจธ เจซเฉเจฒเจกเจฐ เจจเฉเฉฐ เจธเจชเจพเจฐเจ เจฆเฉเจเจฐเจพ เจชเฉเฉเจนเจฟเจ เจ เจคเฉ เจชเจพเจฐเจธ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค เจจเจคเฉเจเจพ เจกเฉเจเจพเจซเฉเจฐเฉเจฎ เจชเจพเจฐเจธเจฏเฉเจ เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, parquet เจตเจฟเฉฑเจ, เจเจฟเจธเจจเฉเฉฐ เจซเจฟเจฐ Impala เจตเจฟเฉฑเจ เจเจฏเจพเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเจน เจเจธ เจธเจพเจฐเฉ เจกเฉเจเจพ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเฉเจเจพ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ เจเฉ เจเจธ เจฌเจฟเฉฐเจฆเฉ เจคเฉฑเจ เจเจเฉฑเจ เฉ เจนเฉเจ เจนเจจเฅค
3 เจเจฆเจฎ. เจเฉฑเจ เจกเจพเจเจจเจฒเฉเจก เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ เจเฉ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจจเฉเฉฐ เจนเจฐ เจฐเฉเจเจผ เจ
เฉฑเจชเจกเฉเจ เจเจฐเฉเจเจพเฅค
เจตเจพเจงเฉ เจฆเฉ เจฒเฉเจกเจฟเฉฐเจ เจฆเจพ เจธเจตเจพเจฒ เจนเฉ, เจธเจผเฉเจ
เจเฉเจธ เจจเฉเฉฐ เจตเฉฐเจกเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ, เจ
เจคเฉ เจธเจผเฉเจ
เจเฉเจธ เจฆเฉ เจเจฎ เจธเจเฉเจฎ เจจเฉเฉฐ เจฌเจฃเจพเจ เจฐเฉฑเจเจฃ เจฆเจพ เจธเจตเจพเจฒ เจนเฉเฅค
เจเจ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจฒเจเจเฅค เจฆเฉฑเจธ เจฆเฉเจเจ เจเจฟ เจเฉฑเจ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจฌเจฃเจพเจเจฃ เจฆเจพ เจชเจนเจฟเจฒเจพ เจเจฆเจฎ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจ เจคเฉ JSON เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจซเฉเจฒเจกเจฐ เจตเจฟเฉฑเจ เจ เจชเจฒเฉเจก เจเฉเจคเจพ เจเจฟเจ เจนเฉ.
เจเจนเจจเจพเจ เจคเฉเจ เจเฉฑเจ เจกเฉเจเจพเจซเฉเจฐเฉเจฎ เจฌเจฃเจพเจเจฃเจพ, เจซเจฟเจฐ เจเจธเจจเฉเฉฐ เจธเจผเฉเจ เจเฉเจธ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจจเจพ, เจเฉเจ เจธเจฎเฉฑเจธเจฟเจ เจจเจนเฉเจ เจนเฉ. เจเจน เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพ เจเจฆเจฎ เจนเฉ เจเฉ เจธเจชเจพเจฐเจ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจตเจฟเฉฑเจ เจเจธเจพเจจเฉ เจจเจพเจฒ เจชเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ:
df = spark.read.option("mergeSchema", True).json(".../*")
df.printSchema()
root
|-- a: long (nullable = true)
|-- b: string (nullable = true)
|-- c: struct (nullable = true) |
|-- d: long (nullable = true)
เจธเจญ เจเฉเจ เจ เฉเจ เจเจพเจชเจฆเจพ เจนเฉเฅค
เจ เจธเฉเจ JSON เจจเฉเฉฐ เจชเฉเฉเจนเจฆเฉ เจ เจคเฉ เจชเจพเจฐเจธ เจเจฐเจฆเฉ เจนเจพเจ, เจซเจฟเจฐ เจ เจธเฉเจ เจกเฉเจเจพเจซเฉเจฐเฉเจฎ เจจเฉเฉฐ เจเฉฑเจ เจชเฉเจฐเจเฉเจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจฆเฉ เจนเจพเจ, เจเจธเจจเฉเฉฐ เจเจฟเจธเฉ เจตเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจคเจฐเฉเจเฉ เจจเจพเจฒ Hive เจตเจฟเฉฑเจ เจฐเจเจฟเจธเจเจฐ เจเจฐเจฆเฉ เจนเจพเจ:
df.write.format(โparquetโ).option('path','<External Table Path>').saveAsTable('<Table Name>')
เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจตเจฟเฉฐเจกเฉ เจฎเจฟเจฒเจฆเฉ เจนเฉ.
เจชเจฐ, เจ เจเจฒเฉ เจฆเจฟเจจ, เจธเจฐเฉเจค เจคเฉเจ เจจเจตเจพเจ เจกเฉเจเจพ เจเฉเฉเจฟเจ เจเจฟเจ เจธเฉเฅค เจธเจพเจกเฉ เจเฉเจฒ JSON เจตเจพเจฒเจพ เจเฉฑเจ เจซเฉเจฒเจกเจฐ เจนเฉ, เจ เจคเฉ เจเจธ เจซเฉเจฒเจกเจฐ เจคเฉเจ เจเฉฑเจ เจธเจผเฉเจเฉเจธ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉเฅค เจธเจฐเฉเจค เจคเฉเจ เจกเฉเจเจพ เจฆเฉ เจ เจเจฒเฉ เจฌเฉเจ เจจเฉเฉฐ เจฒเฉเจก เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ, เจกเฉเจเจพ เจฎเจพเจฐเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฆเจฟเจจ เจฆเจพ เจกเฉเจเจพ เจเฉเฉฐเจฎ เจนเฉเฅค
เจฒเจพเจเจผเฉเจเจฒ เจนเฉฑเจฒ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจจเฉเฉฐ เจฆเจฟเจจ เจฆเฉ เจนเจฟเจธเจพเจฌ เจจเจพเจฒ เจตเฉฐเจกเจฃเจพ เจนเฉเจตเฉเจเจพ, เจเฉ เจนเจฐ เจ เจเจฒเฉ เจฆเจฟเจจ เจเฉฑเจ เจจเจตเจพเจ เจญเจพเจ เจเฉเฉเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเฉเจตเฉเจเจพเฅค เจเจธเจฆเฉ เจฒเจ เจตเจฟเจงเฉ เจตเฉ เจเฉฐเจเฉ เจคเจฐเฉเจนเจพเจ เจเจพเจฃเฉ เจเจพเจเจฆเฉ เจนเฉ, เจธเจชเจพเจฐเจ เจคเฉเจนเจพเจจเฉเฉฐ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจญเจพเจ เจฒเจฟเจเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
เจชเจนเจฟเจฒเจพเจ, เจ เจธเฉเจ เจเฉฑเจ เจธเจผเฉเจฐเฉเจเจคเฉ เจฒเฉเจก เจเจฐเจฆเฉ เจนเจพเจ, เจเฉฑเจชเจฐ เจฆเฉฑเจธเฉ เจ เจจเฉเจธเจพเจฐ เจกเฉเจเจพ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจฆเฉ เจนเฉเจ, เจธเจฟเจฐเจซเจผ เจญเจพเจ เจเฉเฉเจฆเฉ เจนเฉเจเฅค เจเจธ เจเจพเจฐเจตเจพเจ เจจเฉเฉฐ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจธเจผเฉเจฐเฉเจเจคเฉเจเจฐเจฃ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจธเจฟเจฐเจซ เจเฉฑเจ เจตเจพเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ:
df.write.partitionBy("date_load").mode("overwrite").parquet(dbpath + "/" + db + "/" + destTable)
เจ เจเจฒเฉ เจฆเจฟเจจ, เจ เจธเฉเจ เจธเจฟเจฐเจซ เจเฉฑเจ เจจเจตเจพเจ เจญเจพเจ เจฒเฉเจก เจเจฐเจฆเฉ เจนเจพเจ:
df.coalesce(1).write.mode("overwrite").parquet(dbpath + "/" + db + "/" + destTable +"/date_load=" + date_load + "/")
เจธเจเฉเจฎเจพ เจจเฉเฉฐ เจ
เฉฑเจชเจกเฉเจ เจเจฐเจจ เจฒเจ Hive เจตเจฟเฉฑเจ เจฆเฉเจฌเจพเจฐเจพ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจเจพ เจฌเจพเจเฉ เจนเฉเฅค
เจนเจพเจฒเจพเจเจเจฟ, เจเจน เจเจน เจฅเจพเจ เจนเฉ เจเจฟเฉฑเจฅเฉ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจชเฉเจฆเจพ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ.
เจชเจนเจฟเจฒเฉ เจธเจฎเฉฑเจธเจฟเจ. เจเจฒเจฆเฉ เจเจพเจ เจฌเจพเจ เจฆ เจตเจฟเฉฑเจ, เจจเจคเฉเจเฉ เจตเจเฉเจ เจชเจฐเจเฉ เจชเฉเฉเจนเจจเจฏเฉเจ เจจเจนเฉเจ เจนเฉเจตเฉเจเฉ. เจเจน เจเจธ เจเจพเจฐเจจ เจนเฉ เจเจฟ เจเจฟเจตเฉเจ parquet เจ เจคเฉ JSON เจเจพเจฒเฉ เจเฉเจคเจฐเจพเจ เจจเฉเฉฐ เจตเฉฑเจเจฐเฉ เจขเฉฐเจ เจจเจพเจฒ เจตเจฐเจคเจฆเฉ เจนเจจเฅค
เจเจ เจเฉฑเจ เจเจฎ เจธเจฅเจฟเจคเฉ เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเฉเจ. เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจฒเฉเจน JSON เจชเจนเฉเฉฐเจเจฟเจ:
ะะตะฝั 1: {"a": {"b": 1}},
เจ เจคเฉ เจ เฉฑเจ เจเจนเฉ JSON เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเจพ เจนเฉ:
ะะตะฝั 2: {"a": null}
เจฎเฉฐเจจ เจฒเจ เจเจฟ เจธเจพเจกเฉ เจเฉเจฒ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจญเจพเจ เจนเจจ, เจนเจฐ เจเฉฑเจ เจฒเจพเจเจจ เจฆเฉ เจจเจพเจฒเฅค
เจเจฆเฉเจ เจ
เจธเฉเจ เจชเฉเจฐเฉ เจธเจฐเฉเจค เจกเฉเจเจพ เจจเฉเฉฐ เจชเฉเฉเจนเจฆเฉ เจนเจพเจ, เจคเจพเจ เจธเจชเจพเจฐเจ เจเจฟเจธเจฎ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจนเฉเจตเฉเจเจพ, เจ
เจคเฉ เจเจน เจธเจฎเจเฉเจเจพ เจเจฟ "a" เจเจฟเจธเจฎ "เจขเจพเจเจเจพ" เจฆเจพ เจเฉฑเจ เจเฉเจคเจฐ เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ INT เจเจฟเจธเจฎ เจฆเจพ เจเฉฑเจ เจจเฉเจธเจเจก เจเฉเจคเจฐ "b" เจนเฉเฅค เจชเจฐ, เจเฉเจเจฐ เจนเจฐเฉเจ เจญเจพเจ เจจเฉเฉฐ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจธเฉเจฐเฉฑเจเจฟเจ
เจค เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจ
เจธเฉฐเจเจค เจชเจพเจฐเจเฉเจธเจผเจจ เจธเจเฉเจฎเจพเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ parquet เจฎเจฟเจฒเจฆเจพ เจนเฉ:
df1 (a: <struct<"b": INT>>)
df2 (a: STRING NULLABLE)
เจเจน เจธเจฅเจฟเจคเฉ เจเฉฐเจเฉ เจคเจฐเฉเจนเจพเจ เจเจพเจฃเฉ เจเจพเจเจฆเฉ เจนเฉ, เจเจธ เจฒเจ เจเฉฑเจ เจตเจฟเจเจฒเจช เจตเจฟเจธเจผเฉเจธเจผ เจคเฉเจฐ 'เจคเฉ เจเฉเฉเจฟเจ เจเจฟเจ เจนเฉ - เจธเจฐเฉเจค เจกเฉเจเจพ เจจเฉเฉฐ เจชเจพเจฐเจธ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจเจพเจฒเฉ เจเฉเจคเจฐเจพเจ เจจเฉเฉฐ เจนเจเจพเจ:
df = spark.read.json("...", dropFieldIfAllNull=True)
เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจชเจพเจฐเจเจตเฉเจ เจตเจฟเฉฑเจ เจญเจพเจ เจนเฉเจฃเจเฉ เจเฉ เจเจเฉฑเจ เฉ เจชเฉเฉเจนเฉ เจเจพ เจธเจเจฆเฉ เจนเจจ.
เจนเจพเจฒเจพเจเจเจฟ เจเจฟเจจเฉเจนเจพเจ เจจเฉ เจ
เจญเจฟเจเจธ เจตเจฟเฉฑเจ เจ
เจเจฟเจนเจพ เจเฉเจคเจพ เจนเฉ เจเจน เจเฉฑเจฅเฉ เจเฉเฉเจพ เจเจฟเจนเจพ เจนเฉฑเจธเจฃเจเฉ. เจเจฟเจเจ? เจนเจพเจ, เจเจฟเจเจเจเจฟ เจฆเฉ เจนเฉเจฐ เจธเจฅเจฟเจคเฉเจเจ เจนเฉเจฃ เจฆเฉ เจธเฉฐเจญเจพเจตเจจเจพ เจนเฉเฅค เจเจพเจ เจคเจฟเฉฐเจจ. เจเจพเจ เจเจพเจฐ. เจชเจนเจฟเจฒเจพ, เจเฉ เจฒเจเจญเจ เจจเจฟเจธเจผเจเจฟเจค เจคเฉเจฐ 'เจคเฉ เจตเจพเจชเจฐเฉเจเจพ, เจเจน เจนเฉ เจเจฟ เจตเฉฑเจ-เจตเฉฑเจ JSON เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจธเฉฐเจเจฟเจเจคเจฎเจ เจเจฟเจธเจฎเจพเจ เจตเฉฑเจเจฐเฉเจเจ เจฆเจฟเจเจพเจ เจฆเฉเจฃเจเฉเจเจเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, {intField: 1} เจ
เจคเฉ {intField: 1.1}เฅค เจเฉเจเจฐ เจ
เจเจฟเจนเฉ เจเฉเจคเจฐ เจเฉฑเจ เจญเจพเจ เจตเจฟเฉฑเจ เจชเจพเจ เจเจพเจเจฆเฉ เจนเจจ, เจคเจพเจ เจธเจเฉเจฎเจพ เจฎเจฐเจ เจธเจญ เจเฉเจ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจชเฉเฉเจนเฉเจเจพ, เจเจฟเจธ เจจเจพเจฒ เจธเจญ เจคเฉเจ เจธเจนเฉ เจเจฟเจธเจฎ เจนเฉ เจเจพเจตเฉเจเฉเฅค เจชเจฐ เจเฉเจเจฐ เจตเฉฑเจ-เจตเฉฑเจ เจตเจฟเฉฑเจ, เจคเจพเจ เจเฉฑเจ เจเฉเจฒ intField: int เจนเฉเจตเฉเจเจพ, เจ
เจคเฉ เจฆเฉเจเฉ เจเฉเจฒ intField: เจกเจฌเจฒ เจนเฉเจตเฉเจเจพเฅค
เจเจธ เจธเจฅเจฟเจคเฉ เจจเฉเฉฐ เจธเฉฐเจญเจพเจฒเจฃ เจฒเจ เจนเฉเจ เจฒเจฟเจเฉ เจซเจฒเฉเจ เจนเจจ:
df = spark.read.json("...", dropFieldIfAllNull=True, primitivesAsString=True)
เจนเฉเจฃ เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ เจซเฉเจฒเจกเจฐ เจนเฉ เจเจฟเฉฑเจฅเฉ เจญเจพเจ เจนเจจ เจเฉ เจเฉฑเจ เจธเจฟเฉฐเจเจฒ เจกเฉเจเจพเจซเฉเจฐเฉเจฎ เจตเจฟเฉฑเจ เจชเฉเฉเจนเฉ เจเจพ เจธเจเจฆเฉ เจนเจจ เจ เจคเฉ เจชเฉเจฐเฉ เจธเจผเฉเจเฉเจธ เจฆเฉ เจเฉฑเจ เจตเฉเจง เจชเจพเจฐเจเฉเจ เจนเฉเฅค เจนเจพเจ? เจจเฉฐ.
เจธเจพเจจเฉเฉฐ เจฏเจพเจฆ เจฐเฉฑเจเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟ เจ เจธเฉเจ Hive เจตเจฟเฉฑเจ เจธเจพเจฐเจฃเฉ เจจเฉเฉฐ เจฐเจเจฟเจธเจเจฐ เจเฉเจคเจพ เจนเฉเฅค Hive เจเฉเจคเจฐ เจฆเฉ เจจเจพเจตเจพเจ เจตเจฟเฉฑเจ เจเฉเจธ-เจธเฉฐเจตเฉเจฆเจจเจธเจผเฉเจฒ เจจเจนเฉเจ เจนเฉ, เจเจฆเฉเจ เจเจฟ parquet เจเฉเจธ-เจธเฉฐเจตเฉเจฆเจจเจธเจผเฉเจฒ เจนเฉเฅค เจเจธ เจฒเจ, เจธเจเฉเจฎเจพเจ เจตเจพเจฒเฉ เจญเจพเจ: field1: int, เจ เจคเฉ Field1: int Hive เจฒเจ เจเฉฑเจเฉ เจเจฟเจนเฉ เจนเจจ, เจชเจฐ เจธเจชเจพเจฐเจ เจฒเจ เจจเจนเฉเจเฅค เจเฉเจคเจฐ เจฆเฉ เจจเจพเจตเจพเจ เจจเฉเฉฐ เจเฉเจเฉ เจ เฉฑเจเจฐเจพเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฃเจพ เจจเจพ เจญเฉเฉฑเจฒเฉเฅค
เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ, เจธเจญ เจเฉเจ เจ เฉเจ เจนเฉเจฃ เจฒเฉฑเจเจฆเจพ เจนเฉ.
เจนเจพเจฒเจพเจเจเจฟ, เจธเจพเจฐเฉ เจเฉฐเจจเฉ เจธเจงเจพเจฐเจจ เจจเจนเฉเจ เจนเจจ. เจเฉฑเจ เจฆเฉเจเฉ, เจเจพเจฃเฉ-เจชเจเจพเจฃเฉ เจธเจฎเฉฑเจธเจฟเจ เจตเฉ เจนเฉเฅค เจเจฟเจเจเจเจฟ เจนเจฐเฉเจ เจจเจตเจพเจ เจญเจพเจ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ, เจญเจพเจ เจซเฉเจฒเจกเจฐ เจตเจฟเฉฑเจ เจธเจชเจพเจฐเจ เจธเจฐเจตเจฟเจธ เจซเจพเจเจฒเจพเจ เจธเจผเจพเจฎเจฒ เจนเฉเจฃเจเฉเจเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, _SUCCESS เจเจชเจฐเฉเจธเจผเจจ เจธเจซเจฒเจคเจพ เจซเจฒเฉเจเฅค เจเจธ เจฆเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ เจชเฉเจฐเจเฉเจ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจเฉฑเจ เจเจฒเจคเฉ เจนเฉเจตเฉเจเฉเฅค เจเจธ เจคเฉเจ เจฌเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจธเจชเจพเจฐเจ เจจเฉเฉฐ เจซเฉเจฒเจกเจฐ เจตเจฟเฉฑเจ เจธเฉเจตเจพ เจซเจพเจเจฒเจพเจ เจเฉเฉเจจ เจคเฉเจ เจฐเฉเจเจฃ เจฒเจ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
hadoopConf = sc._jsc.hadoopConfiguration()
hadoopConf.set("parquet.enable.summary-metadata", "false")
hadoopConf.set("mapreduce.fileoutputcommitter.marksuccessfuljobs", "false")
เจ เจเจฟเจนเจพ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจนเฉเจฃ เจนเจฐ เจฐเฉเจเจผ เจเฉฑเจ เจจเจตเจพเจ เจชเจพเจฐเจเฉเจเจ เจญเจพเจ เจเจพเจฐเจเจฟเจ เจธเจผเฉเจเฉเจธ เจซเฉเจฒเจกเจฐ เจตเจฟเฉฑเจ เจเฉเฉเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจเจฟเฉฑเจฅเฉ เจฆเจฟเจจ เจฒเจ เจชเจพเจฐเจธ เจเฉเจคเจพ เจกเฉเจเจพ เจธเจฅเจฟเจค เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจ เจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจงเจฟเจเจจ เจฐเฉฑเจเจฟเจ เจธเฉ เจเจฟ เจกเฉเจเจพ เจเจฟเจธเจฎ เจฆเฉ เจ เจชเจตเจพเจฆ เจตเจพเจฒเฉ เจเฉเจ เจญเจพเจ เจจเจนเฉเจ เจนเจจเฅค
เจชเจฐ, เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ เจคเฉเจเฉ เจธเจฎเฉฑเจธเจฟเจ เจนเฉ. เจนเฉเจฃ เจเจฎ เจธเจเฉเจฎเจพ เจฆเจพ เจชเจคเจพ เจจเจนเฉเจ เจนเฉ, เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, Hive เจตเจฟเฉฑเจ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจฒเจค เจธเจเฉเจฎเจพ เจนเฉ, เจเจฟเจเจเจเจฟ เจนเจฐเฉเจ เจจเจตเฉเจ เจญเจพเจ เจจเฉ เจธเจเฉเจฎเจพ เจตเจฟเฉฑเจ เจเฉฑเจ เจตเจฟเจเจพเฉ เจชเฉเจธเจผ เจเฉเจคเจพ เจนเฉเฅค
เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจฌเจฒ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจน เจเจธเจพเจจเฉ เจจเจพเจฒ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ: เจธเจเฉเจฐเจซเจฐเฉฐเจ เจฆเฉ เจชเฉเจฐเจเฉเจ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจชเฉเฉเจนเฉ, เจธเจเฉเจฎเจพ เจฒเจ เจ เจคเฉ เจเจธเจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเฉฑเจ DDL เจฌเจฃเจพเจ, เจเจฟเจธ เจจเจพเจฒ Hive เจตเจฟเฉฑเจ เจซเฉเจฒเจกเจฐ เจจเฉเฉฐ เจเฉฑเจ เจฌเจพเจนเจฐเฉ เจธเจพเจฐเจฃเฉ เจฆเฉ เจคเฉเจฐ 'เจคเฉ เจฆเฉเจฌเจพเจฐเจพ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจเจพ เจนเฉ, เจเจพเจฐเจเฉเจ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจฆเฉ เจธเจเฉเจฎเจพ เจจเฉเฉฐ เจ เฉฑเจชเจกเฉเจ เจเจฐเจจเจพเฅค
เจธเจพเจกเฉ เจเฉเจฒ เจเฉเจฅเฉ เจธเจฎเฉฑเจธเจฟเจ เจนเฉเฅค เจเจฆเฉเจ เจ เจธเฉเจ เจชเจนเจฟเจฒเฉ เจตเจพเจฐ เจเฉเจฌเจฒ เจจเฉเฉฐ เจฐเจเจฟเจธเจเจฐ เจเฉเจคเจพ, เจ เจธเฉเจ เจธเจชเจพเจฐเจ 'เจคเฉ เจญเจฐเฉเจธเจพ เจเฉเจคเจพเฅค เจนเฉเจฃ เจ เจธเฉเจ เจเจน เจเจชเจฃเฉ เจเจช เจเจฐเจฆเฉ เจนเจพเจ, เจ เจคเฉ เจธเจพเจจเฉเฉฐ เจเจน เจฏเจพเจฆ เจฐเฉฑเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเจฟ เจชเจพเจฐเจเจตเฉเจ เจเฉเจคเจฐ เจเจนเจจเจพเจ เจชเจพเจคเจฐเจพเจ เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจนเฉ เจธเจเจฆเฉ เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจฆเฉ Hive เจฒเจ เจเจเจฟเจ เจจเจนเฉเจ เจนเฉ. เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจธเจชเจพเจฐเจ เจฒเจพเจเจจเจพเจ เจจเฉเฉฐ เจฌเจพเจนเจฐ เจธเฉเฉฑเจเจฆเจพ เจนเฉ เจเฉ เจเจน "corrupt_record" เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจชเจพเจฐเจธ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค เจ เจเจฟเจนเฉ เจเฉเจคเจฐ เจจเฉเฉฐ เจฌเจเฉ เจฌเจฟเจจเจพเจ Hive เจตเจฟเฉฑเจ เจฐเจเจฟเจธเจเจฐ เจจเจนเฉเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพเฅค
เจเจน เจเจพเจฃเจฆเจฟเจเจ, เจธเจพเจจเฉเฉฐ เจเจน เจธเจเฉเจฎ เจฎเจฟเจฒเจฆเฉ เจนเฉ:
f_def = ""
for f in pf.dtypes:
if f[0] != "date_load":
f_def = f_def + "," + f[0].replace("_corrupt_record", "`_corrupt_record`") + " " + f[1].replace(":", "`:").replace("<", "<`").replace(",", ",`").replace("array<`", "array<")
table_define = "CREATE EXTERNAL TABLE jsonevolvtable (" + f_def[1:] + " ) "
table_define = table_define + "PARTITIONED BY (date_load string) STORED AS PARQUET LOCATION '/user/admin/testJson/testSchemaEvolution/pq/'"
hc.sql("drop table if exists jsonevolvtable")
hc.sql(table_define)
เจเฉเจก ("_corrupt_record", "`_corrupt_record`") + "" + f[1].replace(":", "`:").replace("<", "<`").replace(",", ",`") เจฌเจฆเจฒเฉ("เจเจฐเฉ<`", "เจเจฐเฉ<") เจธเฉเจฐเฉฑเจเจฟเจ เจค DDL เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ:
create table tname (_field1 string, 1field string)
"_field1, 1field" เจตเจฐเจเฉ เจซเฉเจฒเจก เจจเจพเจตเจพเจ เจฆเฉ เจจเจพเจฒ, เจธเฉเจฐเฉฑเจเจฟเจ เจค DDL เจฌเจฃเจพเจเจ เจเจพเจเจฆเจพ เจนเฉ เจเจฟเฉฑเจฅเฉ เจซเฉเจฒเจก เจจเจพเจฎ เจฌเจเฉ เจนเฉเจ เจนเจจ: เจเฉเจฌเจฒ เจฌเจฃเจพเจ `tname` (`_field1` เจธเจคเจฐ, `1field` เจธเจคเจฐ)เฅค
เจธเจตเจพเจฒ เจชเฉเจฆเจพ เจนเฉเฉฐเจฆเจพ เจนเฉ: เจชเฉเจฐเฉ เจธเจเฉเจฎเจพ (เจชเฉเจเจซ เจเฉเจก เจตเจฟเฉฑเจ) เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจกเฉเจเจพเจซเฉเจฐเฉเจฎ เจจเฉเฉฐ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจเจฟเจตเฉเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจนเฉ? เจเจน เจชเฉเจเจซ เจเจฟเจตเฉเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจเจพเจตเฉ? เจเจน เจชเฉฐเจเจตเฉเจ เจธเจฎเฉฑเจธเจฟเจ เจนเฉเฅค เจเจพเจฐเจเฉเจ เจธเจผเฉเจเฉเจธ เจฆเฉเจเจ เจชเจพเจฐเจเฉเจเจ เจซเจพเจเจฒเจพเจ เจตเจพเจฒเฉ เจซเฉเจฒเจกเจฐ เจคเฉเจ เจธเจพเจฐเฉ เจญเจพเจเจพเจ เจฆเฉ เจธเจเฉเจฎ เจจเฉเฉฐ เจฎเฉเฉ เจชเฉเฉเจนเฉ? เจเจน เจคเจฐเฉเจเจพ เจธเจญ เจคเฉเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจนเฉ, เจชเจฐ เจฎเฉเจธเจผเจเจฒ เจนเฉ.
เจธเจเฉเจฎเจพ เจชเจนเจฟเจฒเจพเจ เจนเฉ Hive เจตเจฟเฉฑเจ เจนเฉเฅค เจคเฉเจธเฉเจ เจชเฉเจฐเฉ เจเฉเจฌเจฒ เจฆเฉ เจธเจเฉเจฎเจพ เจ เจคเฉ เจจเจตเฉเจ เจญเจพเจ เจจเฉเฉฐ เจฎเจฟเจฒเจพ เจเฉ เจเฉฑเจ เจจเจตเฉเจ เจธเจเฉเจฎเจพ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจเจธ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ Hive เจคเฉเจ เจเฉเจฌเจฒ เจธเจเฉเจฎเจพ เจฒเฉเจฃ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจจเจตเฉเจ เจญเจพเจ เจฆเฉ เจธเจเฉเจฎเจพ เจจเจพเจฒ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจน Hive เจคเฉเจ เจเฉเจธเจ เจฎเฉเจเจพเจกเฉเจเจพ เจจเฉเฉฐ เจชเฉเฉเจน เจเฉ, เจเจธเจจเฉเฉฐ เจเฉฑเจ เจ เจธเจฅเจพเจ เจซเฉเจฒเจกเจฐ เจตเจฟเฉฑเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจเฉ, เจ เจคเฉ เจธเจชเจพเจฐเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฆเฉเจตเฉเจ เจญเจพเจเจพเจ เจจเฉเฉฐ เจเฉฑเจเฉ เจตเจพเจฐ เจชเฉเฉเจน เจเฉ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจ เจธเจฒ เจตเจฟเฉฑเจ, เจเฉฑเจฅเฉ เจธเจญ เจเฉเจ เจนเฉ เจเจฟเจธเจฆเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฒเฉเฉ เจนเฉ: Hive เจตเจฟเฉฑเจ เจ เจธเจฒเฉ เจเฉเจฌเจฒ เจธเจเฉเจฎเจพ เจ เจคเฉ เจจเจตเจพเจ เจญเจพเจเฅค เจธเจพเจกเฉ เจเฉเจฒ เจกเจพเจเจพ เจตเฉ เจนเฉเฅค เจเจน เจธเจฟเจฐเจซ เจเฉฑเจ เจจเจตเฉเจ เจธเจเฉเจฎเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉ เจเฉ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจธเจเฉเจฎเจพ เจ เจคเฉ เจฌเจฃเจพเจ เจญเจพเจ เจคเฉเจ เจจเจตเฉเจ เจเฉเจคเจฐเจพเจ เจจเฉเฉฐ เจเฉเฉเจฆเจพ เจนเฉ:
from pyspark.sql import HiveContext
from pyspark.sql.functions import lit
hc = HiveContext(spark)
df = spark.read.json("...", dropFieldIfAllNull=True)
df.write.mode("overwrite").parquet(".../date_load=12-12-2019")
pe = hc.sql("select * from jsonevolvtable limit 1")
pe.write.mode("overwrite").parquet(".../fakePartiton/")
pf = spark.read.option("mergeSchema", True).parquet(".../date_load=12-12-2019/*", ".../fakePartiton/*")
เจ
เฉฑเจเฉ, เจ
เจธเฉเจ เจเฉเจฌเจฒ เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ DDL เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ, เจเจฟเจตเฉเจ เจเจฟ เจชเจฟเจเจฒเฉ เจธเจจเจฟเฉฑเจชเจ เจตเจฟเฉฑเจเฅค
เจเฉเจเจฐ เจชเฉเจฐเฉ เจเฉเจจ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเฉ, เจ
เจฐเจฅเจพเจค, เจเฉฑเจ เจธเจผเฉเจฐเฉเจเจคเฉ เจฒเฉเจก เจธเฉ, เจ
เจคเฉ Hive เจตเจฟเฉฑเจ เจธเจพเจฐเจฃเฉ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจฌเจฃเจพเจ เจเจ เจธเฉ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจ
เฉฑเจชเจกเฉเจ เจเฉเจคเฉ เจธเจพเจฐเจฃเฉ เจธเจเฉเจฎเจพ เจฎเจฟเจฒเจฆเฉ เจนเฉเฅค
เจ เจคเฉ เจเจเจฐเฉ เจธเจฎเฉฑเจธเจฟเจ เจเจน เจนเฉ เจเจฟ เจคเฉเจธเฉเจ เจธเจฟเจฐเจซ เจเฉฑเจ Hive เจเฉเจฌเจฒ เจตเจฟเฉฑเจ เจเฉฑเจ เจญเจพเจ เจจเจนเฉเจ เจเฉเฉ เจธเจเจฆเฉ, เจเจฟเจเจเจเจฟ เจเจน เจเฉเฉฑเจ เจเจพเจตเฉเจเจพเฅค เจคเฉเจนเจพเจจเฉเฉฐ Hive เจจเฉเฉฐ เจเจธเจฆเฉ เจญเจพเจ เจขเจพเจเจเฉ เจจเฉเฉฐ เจ เฉเจ เจเจฐเจจ เจฒเจ เจฎเจเจฌเฉเจฐ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
from pyspark.sql import HiveContext
hc = HiveContext(spark)
hc.sql("MSCK REPAIR TABLE " + db + "." + destTable)
JSON เจจเฉเฉฐ เจชเฉเฉเจนเจจ เจ เจคเฉ เจเจธ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจธเจเฉเจฐเจซเจฐเฉฐเจ เจฌเจฃเจพเจเจฃ เจฆเจพ เจธเจงเจพเจฐเจจ เจเฉฐเจฎ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจ เจจเจฟเฉฑเจเฉเจตเจพเจ เจฎเฉเจธเจผเจเจฒเจพเจ เจจเฉเฉฐ เจฆเฉเจฐ เจเจฐเจฆเจพ เจนเฉ, เจนเฉฑเจฒ เจเจฟเจจเฉเจนเจพเจ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจตเฉฑเจเจฐเฉ เจคเฉเจฐ 'เจคเฉ เจเฉเจ เจเจฐเจจเฉ เจชเจตเฉเจเฉเฅค เจ เจคเฉ เจนเจพเจฒเจพเจเจเจฟ เจเจน เจนเฉฑเจฒ เจธเจงเจพเจฐเจจ เจนเจจ, เจเจนเจจเจพเจ เจจเฉเฉฐ เจฒเฉฑเจญเจฃ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเจฎเจพเจ เจฒเฉฑเจเจฆเจพ เจนเฉเฅค
เจธเจผเฉเจ เจเฉเจธ เจฆเฉ เจเจธเจพเจฐเฉ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ, เจฎเฉเจจเฉเฉฐ เจเจน เจเจฐเจจเจพ เจชเจฟเจ:
- เจธเจผเฉเจเฉเจธ เจตเจฟเฉฑเจ เจญเจพเจ เจเฉเฉเฉ, เจธเฉเจตเจพ เจซเจพเจเจฒเจพเจ เจคเฉเจ เจเฉเจเจเจพเจฐเจพ เจชเจพเจ
- เจธเจชเจพเจฐเจ เจฆเฉเจเจฐเจพ เจเจพเจเจช เจเฉเจคเฉ เจธเจฐเฉเจค เจกเฉเจเจพ เจตเจฟเฉฑเจ เจเจพเจฒเฉ เจเฉเจคเจฐเจพเจ เจจเจพเจฒ เจจเจเจฟเฉฑเจ เฉ
- เจธเจงเจพเจฐเจจ เจเจฟเจธเจฎเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจธเจคเจฐ เจตเจฟเฉฑเจ เจเจพเจธเจ เจเจฐเฉ
- เจเฉเจคเจฐ เจฆเฉ เจจเจพเจตเจพเจ เจจเฉเฉฐ เจเฉเจเฉ เจ เฉฑเจเจฐเจพเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒเฉ
- Hive (DDL เจเจจเจฐเฉเจธเจผเจจ) เจตเจฟเฉฑเจ เจตเฉฑเจเจฐเจพ เจกเจพเจเจพ เจ เฉฑเจชเจฒเฉเจก เจ เจคเฉ เจเฉเจฌเจฒ เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ
- เจเฉเจคเจฐ เจฆเฉ เจจเจพเจตเจพเจ เจคเฉเจ เจฌเจเจฃเจพ เจจเจพ เจญเฉเฉฑเจฒเฉ เจเฉ Hive เจจเจพเจฒ เจ เจธเฉฐเจเจค เจนเฉ เจธเจเจฆเฉ เจนเจจ
- Hive เจตเจฟเฉฑเจ เจเฉเจฌเจฒ เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจ เฉฑเจชเจกเฉเจ เจเจฐเจจเจพ เจนเฉ เจฌเจพเจฐเฉ เจเจพเจฃเฉ
เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจจเฉเจ เจเจฐเจฆเฉ เจนเจพเจ เจเจฟ เจฆเฉเจเจพเจจ เจฆเฉเจเจ เจเจฟเฉเจเฉเจเจ เจฌเจฃเจพเจเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจเจฎเฉเจเจ เจจเจพเจฒ เจญเจฐเจฟเจ เจนเฉเจเจ เจนเฉเฅค เจเจธ เจฒเจ, เจฒเจพเจเฉ เจเจฐเจจ เจตเจฟเฉฑเจ เจฎเฉเจธเจผเจเจฒเจพเจ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ, เจธเจซเจฒ เจฎเฉเจนเจพเจฐเจค เจตเจพเจฒเฉ เจเฉฑเจ เจคเจเจฐเจฌเฉเจเจพเจฐ เจธเจพเจฅเฉ เจจเจพเจฒ เจธเฉฐเจชเจฐเจ เจเจฐเจจเจพ เจฌเจฟเจนเจคเจฐ เจนเฉ.
เจเจธ เจฒเฉเจ เจจเฉเฉฐ เจชเฉเฉเจนเจจ เจฒเจ เจคเฉเจนเจพเจกเจพ เจงเฉฐเจจเจตเจพเจฆ, เจ
เจธเฉเจ เจเจฎเฉเจฆ เจเจฐเจฆเฉ เจนเจพเจ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ เจเจพเจฃเจเจพเจฐเฉ เจฒเจพเจญเจฆเจพเจเจ เจฒเฉฑเจเฉเจเฉเฅค
เจธเจฐเฉเจค: www.habr.com