เชชเซเชฐเชฟเชฏ เชตเชพเชเชเซ, เชถเซเชญ เชฆเชฟเชตเชธ!
เช เชฒเซเชเชฎเชพเช, Neoflex เชจเชพ เชฌเชฟเช เชกเซเชเชพ เชธเซเชฒเซเชฏเซเชถเชจเซเชธ เชฌเชฟเชเชจเซเชธ เชเชฐเชฟเชฏเชพเชจเชพ เช เชเซเชฐเชฃเซ เชธเชฒเชพเชนเชเชพเชฐ เช เชชเชพเชเซ เชธเซเชชเชพเชฐเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชตเซเชฐเชฟเชฏเซเชฌเชฒ เชธเซเชเซเชฐเชเซเชเชฐ เชถเซเชเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซเชจเชพ เชตเชฟเชเชฒเซเชชเซเชจเซเช เชตเชฟเชเชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เชเชฐเซ เชเซ.
เชกเซเชเชพ เชเชจเชพเชฒเชฟเชธเชฟเชธ เชชเซเชฐเซเชเซเชเซเชเชจเชพ เชญเชพเช เชฐเซเชชเซ, เชขเซเชฒเซ เชฐเซเชคเซ เชธเซเชเซเชฐเชเซเชเชฐเซเชก เชกเซเชเชพ เชชเชฐ เชเชงเชพเชฐเชฟเชค เชธเซเชเซเชฐเชซเซเชฐเชจเซเชเซเชธ เชฌเชจเชพเชตเชตเชพเชจเซเช เชเชพเชฐเซเชฏ เชเชฃเซเชตเชพเชฐ เชเชฆเซเชญเชตเซ เชเซ.
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เช เชฒเซเชเซเชธ เช เชฅเชตเชพ เชตเชฟเชตเชฟเชง เชธเชฟเชธเซเชเชฎเซเชจเชพ เชชเซเชฐเชคเชฟเชธเชพเชฆเซ เชนเซเชฏ เชเซ, เชเซ JSON เช เชฅเชตเชพ XML เชคเชฐเซเชเซ เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชกเซเชเชพ Hadoop เชชเชฐ เช เชชเชฒเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชชเชเซ เชคเชฎเชพเชฐเซ เชคเซเชฎเชจเซ เชชเชพเชธเซเชฅเซ เชธเซเชเซเชฐเชซเซเชฐเชจเซเช เชฌเชจเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เช เชฎเซ เชฌเชจเชพเชตเซเชฒ เชถเซเชเซเชธเชจเซ เชเชเซเชธเซเชธ เชเซเช เชตเซ เชถเชเซเช เชเซเช, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, Impala เชฆเซเชตเชพเชฐเชพ.
เช เชเชฟเชธเซเชธเชพเชฎเชพเช, เชฒเชเซเชทเซเชฏ เชธเซเชเซเชฐเชซเซเชฐเชจเซเชเชจเซ เชธเซเชเซเชฎเชพ เช เชเชพเชเชฅเซ เชเชพเชฃเซเชคเซ เชจเชฅเซ. เชตเชงเซเชฎเชพเช, เชธเซเชเซเชฎ เชชเชฃ เช เชเชพเชเชฅเซ เชคเซเชฏเชพเชฐ เชเชฐเซ เชถเชเชพเชคเซ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เชคเซ เชกเซเชเชพ เชชเชฐ เชเชงเชพเชฐเชฟเชค เชเซ, เช เชจเซ เช เชฎเซ เช เชเซเชฌ เช เชขเซเชฒเชพ เชฎเชพเชณเชเชพเชเชค เชกเซเชเชพ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชเซ เชจเซเชเซเชจเซ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชฒเซเช เชฅเชฏเซเชฒ เชเซ:
{source: "app1", error_code: ""}
เช เชจเซ เชเชตเชคเซเชเชพเชฒเซ เช เช เชธเชฟเชธเซเชเชฎเชฎเชพเชเชฅเซ เชจเซเชเซเชจเซ เชเชตเชพเชฌ เชเชตเชถเซ:
{source: "app1", error_code: "error", description: "Network error"}
เชชเชฐเชฟเชฃเชพเชฎเซ, เชถเซเชเซเชธเชฎเชพเช เชตเชงเซ เชเช เชเซเชทเซเชคเซเชฐ เชเชฎเซเชฐเชตเซเช เชเซเชเช - เชตเชฐเซเชฃเชจ, เช เชจเซ เชคเซ เชเชตเชถเซ เชเซ เชจเชนเซเช เชคเซ เชเซเช เชเชพเชฃเชคเซเช เชจเชฅเซ.
เชเชตเชพ เชกเซเชเชพ เชชเชฐ เชธเซเชเซเชฐเชซเซเชฐเชจเซเช เชฌเชจเชพเชตเชตเชพเชจเซเช เชเชพเชฐเซเชฏ เชเซเชฌ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชเซ, เช เชจเซ เชธเซเชชเชพเชฐเซเช เชชเชพเชธเซ เช เชฎเชพเชเซ เชเชฃเชพ เชฌเชงเชพ เชธเชพเชงเชจเซ เชเซ. เชธเซเชคเซเชฐเซเชค เชกเซเชเชพเชจเซ เชชเชพเชฐเซเชธ เชเชฐเชตเชพ เชฎเชพเชเซ, JSON เช เชจเซ XML เชฌเชเชจเซ เชฎเชพเชเซ เชธเชชเซเชฐเซเช เชเซ, เช เชจเซ เช เชเชพเชเชจเซ เช เชเชพเชฃเซ เชธเซเชเซเชฎเชพ เชฎเชพเชเซ, เชธเซเชเซเชฎเชพ เชเชตเซเชฒเซเชฏเซเชถเชจ เชฎเชพเชเซ เชธเชชเซเชฐเซเช เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชชเซเชฐเชฅเชฎ เชจเชเชฐเชฎเชพเช, เชเชเซเชฒ เชธเชฐเชณ เชฒเชพเชเซ เชเซ. เชคเชฎเชพเชฐเซ JSON เชธเชพเชฅเซ เชซเซเชฒเซเชกเชฐ เชฒเซเชตเชพเชจเซ เช เชจเซ เชคเซเชจเซ เชกเซเชเชพเชซเซเชฐเซเชฎเชฎเชพเช เชตเชพเชเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชธเซเชชเชพเชฐเซเช เชธเซเชเซเชฎเชพ เชฌเชจเชพเชตเชถเซ, เชจเซเชธเซเชเซเชก เชกเซเชเชพเชจเซ เชธเซเชเซเชฐเชเซเชเชฐเชฎเชพเช เชซเซเชฐเชตเชถเซ. เชเชเชณ, เชนเชพเชเชต เชฎเซเชเชพเชธเซเชเซเชฐเชฎเชพเช เชธเซเชเซเชฐเชซเซเชฐเชจเซเชเชจเซ เชจเซเชเชงเชฃเซ เชเชฐเซเชจเซ, เชฆเชฐเซเช เชตเชธเซเชคเซเชจเซ เชฒเชพเชเชกเชพเชจเซ เชชเชเซเชเซเชฎเชพเช เชธเชพเชเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชเซ เชเชฎเซเชชเชพเชฒเชพเชฎเชพเช เชชเชฃ เชธเชชเซเชฐเซเชเซเชก เชเซ.
เชฌเชงเซเช เชธเชฐเชณ เชฒเชพเชเซ เชเซ.
เชเซ เชเซ, เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช เชธเชเชเซเชฏเชพเชฌเชเชง เชธเชฎเชธเซเชฏเชพเชเชจเซเช เชถเซเช เชเชฐเชตเซเช เชคเซ เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃเชฎเชพเชเชจเชพ เชเซเชเชเชพ เชเชฆเชพเชนเชฐเชฃเซเชฅเซ เชธเซเชชเชทเซเช เชจเชฅเซ.
เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃ เชธเซเชเซเชฐเชซเซเชฐเชจเซเช เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชจเชนเซเช, เชชเชฐเชเชคเซ เชกเซเชเชพเชซเซเชฐเซเชฎเชฎเชพเช JSON เช เชฅเชตเชพ XML เชตเชพเชเชเชตเชพ เชฎเชพเชเซเชจเชพ เช เชญเชฟเชเชฎเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซ เชเซ.
เชเซเชฎ เชเซ, เชคเซ เชซเชเซเชค JSON เชจเซ เชเซเชตเซ เชฐเซเชคเซ เชตเชพเชเชเชตเซเช เช เชจเซ เชชเชพเชฐเซเชธ เชเชฐเชตเซเช เชคเซ เชฌเชคเชพเชตเซ เชเซ:
df = spark.read.json(path...)
เชธเซเชชเชพเชฐเซเชเชจเซ เชกเซเชเชพ เชเชชเชฒเชฌเซเชง เชเชฐเชพเชตเชตเชพ เชฎเชพเชเซ เช เชชเซเชฐเชคเซเช เชเซ.
เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช, เชซเซเชฒเซเชกเชฐเชฎเชพเชเชฅเซ JSON เชซเชพเชเชฒเซ เชตเชพเชเชเชตเชพ เช เชจเซ เชกเซเชเชพเชซเซเชฐเซเชฎ เชฌเชจเชพเชตเชตเชพ เชเชฐเชคเชพเช เชธเซเชเซเชฐเชฟเชชเซเช เชตเชงเซ เชเชเชฟเชฒ เชเซ. เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เชเชจเชพ เชเซเชตเซ เชฒเชพเชเซ เชเซ: เชคเซเชฏเชพเช เชชเชนเซเชฒเซเชฅเซ เช เชเช เชเซเชเซเชเชธ เชธเซเชเซเชฐเชซเซเชฐเชจเซเช เชเซ, เชฆเชฐเชฐเซเช เชจเชตเซ เชกเซเชเชพ เชเชตเซ เชเซ, เชคเซเชจเซ เชธเซเชเซเชฐเชซเซเชฐเชจเซเชเชฎเชพเช เชเชฎเซเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชญเซเชฒเชถเซ เชจเชนเซเช เชเซ เชฏเซเชเชจเชพ เช เชฒเช เชนเซเช เชถเชเซ เชเซ.
เชถเซเชเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฏเซเชเชจเชพ เชจเซเชเซ เชฎเซเชเชฌ เชเซ:
1 เชชเชเชฒเซเช. เชกเซเชเชพเชจเซ เช เชจเซเชเชพเชฎเซ เชฆเซเชจเชฟเช เชฐเซเชฒเซเชกเชฟเชเช เชธเชพเชฅเซ Hadoop เชฎเชพเช เชฒเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ เชจเชตเชพ เชชเชพเชฐเซเชเซเชถเชจเชฎเชพเช เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชคเซ เชฆเชฟเชตเชธ เชฆเซเชตเชพเชฐเชพ เชตเชฟเชญเชพเชเชฟเชค เชชเซเชฐเชพเชฐเชเชญเชฟเช เชกเซเชเชพ เชธเชพเชฅเซ เชซเซเชฒเซเชกเชฐ เชฌเชนเชพเชฐ เชตเชณเซ เชเซ.
2 เชชเชเชฒเซเช. เชชเซเชฐเชพเชฐเชเชญเชฟเช เชฒเซเชก เชฆเชฐเชฎเชฟเชฏเชพเชจ, เช เชซเซเชฒเซเชกเชฐ เชธเซเชชเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ เชตเชพเชเชเชตเชพเชฎเชพเช เช เชจเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชชเชฐเชฟเชฃเชพเชฎเซ เชกเซเชเชพเชซเซเชฐเซเชฎ เชชเชพเชฐเซเชธเซเชฌเชฒ เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฒเชพเชเชกเชพเชเชจเซ เช เชเชฆเชฐ, เชเซ เชชเชเซ เชเชฎเซเชชเชพเชฒเชพเชฎเชพเช เชเชฏเชพเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ. เช เช เชฌเชฟเชเชฆเซ เชธเซเชงเซ เชเชเช เชพ เชฅเชฏเซเชฒเชพ เชคเชฎเชพเชฎ เชกเซเชเชพ เชธเชพเชฅเซ เชฒเชเซเชทเซเชฏ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฌเชจเชพเชตเซ เชเซ.
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" เชเซ. เชชเชฐเชเชคเซ, เชเซ เชฆเชฐเซเช เชชเชพเชฐเซเชเซเชถเชจ เช
เชฒเชเชฅเซ เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเซเชฏ, เชคเซ เชชเชเซ เช
เชฎเชจเซ เช
เชธเชเชเชค เชชเชพเชฐเซเชเซเชถเชจ เชธเซเชเซเชฎเซเชธ เชธเชพเชฅเซ เชเช เชฒเชพเชเชกเชพเชจเซเช เชชเชพเชคเชณเซเช เชชเชก เชฎเชณเซ เชเซ:
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)
เชนเชตเซ เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชเช เชซเซเชฒเซเชกเชฐ เชเซ เชเซเชฏเชพเช เชคเซเชฏเชพเช เชชเชพเชฐเซเชเซเชถเชจเซ เชเซ เชเซ เชเช เช เชกเซเชเชพเชซเซเชฐเซเชฎเชฎเชพเช เชตเชพเชเชเซ เชถเชเชพเชฏ เชเซ เช เชจเซ เชธเชฎเชเซเชฐ เชถเซเชเซเชธเชจเซ เชฎเชพเชจเซเชฏ เชฒเชพเชเชกเชพเชจเซเช เชชเชพเชคเชณเซเช เชชเชก เชเซ. เชนเชพ? เชจเชพ.
เชเชชเชฃเซ เชฏเชพเชฆ เชฐเชพเชเชตเซเช เชเซเชเช เชเซ เช เชฎเซ เชฎเชงเชชเซเชกเซเชฎเชพเช เชเซเชฌเชฒ เชฐเชเซเชธเซเชเชฐ เชเชฐเซเชฏเซเช เชเซ. เชซเซเชฒเซเชกเชจเชพ เชจเชพเชฎเซเชฎเชพเช เชฎเชงเชชเซเชกเซ เชเซเชธ เชธเซเชจเซเชธเชฟเชเชฟเชต เชจเชฅเซ, เชเซเชฏเชพเชฐเซ เชฒเชพเชเชกเซ เชเซเชธ เชธเซเชจเซเชธเชฟเชเชฟเชต เชเซ. เชคเซเชฅเซ, เชธเซเชเซเชฎเชพ เชธเชพเชฅเซเชจเชพ เชชเชพเชฐเซเชเซเชถเชจเซ: field1: int, เช เชจเซ Field1: int เช Hive เชฎเชพเชเซ เชธเชฎเชพเชจ เชเซ, เชชเชฐเชเชคเซ Spark เชฎเชพเชเซ เชจเชนเซเช. เชซเซเชฒเซเชกเชจเชพ เชจเชพเชฎเซเชจเซ เชฒเซเช เชฐเชเซเชธเชฎเชพเช เชเชจเซเชตเชฐเซเช เชเชฐเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช.
เชคเซ เชชเชเซ, เชฌเชงเซเช เชธเชพเชฐเซเช เชฒเชพเชเซ เชเซ.
เชเซ เชเซ, เชฌเชงเซเช เชเชเชฒเซเช เชธเชฐเชณ เชจเชฅเซ. เชฌเซเชเซ, เชเชพเชฃเซเชคเซ เชธเชฎเชธเซเชฏเชพ เชชเชฃ เชเซ. เชฆเชฐเซเช เชจเชตเซเช เชชเชพเชฐเซเชเซเชถเชจ เช เชฒเชเชฅเซ เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเชคเซเช เชนเซเชตเชพเชฅเซ, เชชเชพเชฐเซเชเซเชถเชจ เชซเซเชฒเซเชกเชฐเชฎเชพเช เชธเซเชชเชพเชฐเซเช เชธเชฐเซเชตเชฟเชธ เชซเชพเชเชฒเซ เชนเชถเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, _SUCCESS เชเชชเชฐเซเชถเชจ เชธเชเซเชธเซเชธ เชซเซเชฒเซเช. เช เชฒเชพเชเชกเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชคเซ เชตเชเชคเซ เชญเซเชฒเชฎเชพเช เชชเชฐเชฟเชฃเชฎเชถเซ. เชเชจเซ เช เชตเชเชฃเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชธเซเชชเชพเชฐเซเชเชจเซ เชซเซเชฒเซเชกเชฐเชฎเชพเช เชธเซเชตเชพ เชซเชพเชเชฒเซ เชเชฎเซเชฐเชตเชพเชฅเซ เชฐเซเชเชตเชพ เชฎเชพเชเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชเซเช เชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ:
hadoopConf = sc._jsc.hadoopConfiguration()
hadoopConf.set("parquet.enable.summary-metadata", "false")
hadoopConf.set("mapreduce.fileoutputcommitter.marksuccessfuljobs", "false")
เชเชตเซเช เชฒเชพเชเซ เชเซ เชเซ เชนเชตเซ เชฆเชฐเชฐเซเช เชเช เชจเชตเซเช เชฒเชพเชเชกเซเช เชชเชพเชฐเซเชเซเชถเชจ เชฒเชเซเชทเซเชฏ เชถเซเชเซเชธ เชซเซเชฒเซเชกเชฐเชฎเชพเช เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซเชฏเชพเช เชฆเชฟเชตเชธ เชฎเชพเชเซ เชตเชฟเชถเซเชฒเซเชทเชฟเชค เชกเซเชเชพ เชธเซเชฅเชฟเชค เชเซ. เช เชฎเซ เช เชเชพเชเชฅเซ เชเชพเชณเชเซ เชฒเซเชงเซ เชนเชคเซ เชเซ เชกเซเชเชพ เชชเซเชฐเชเชพเชฐ เชธเชเชเชฐเซเชท เชธเชพเชฅเซ เชเซเช เชชเชพเชฐเซเชเซเชถเชจเซ เชจเชฅเซ.
เชชเชฐเชเชคเซ, เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชคเซเชฐเซเชเซ เชธเชฎเชธเซเชฏเชพ เชเซ. เชนเชตเซ เชธเชพเชฎเชพเชจเซเชฏ เชธเซเชเซเชฎเชพ เชเชพเชฃเซเชคเซ เชจเชฅเซ, เชตเชงเซเชฎเชพเช, Hive เชฎเชพเช เชเซเชทเซเชเชเชฎเชพเช เชเช เชเซเชเซ เชธเซเชเซเชฎเชพ เชเซ, เชเชพเชฐเชฃ เชเซ เชฆเชฐเซเช เชจเชตเชพ เชชเชพเชฐเซเชเซเชถเชจเชฎเชพเช เชธเซเชเซเชฎเชพเชฎเชพเช เชตเชฟเชเซเชคเชฟ เชเซเชตเชพ เชฎเชณเซ เชเซ.
เชคเชฎเชพเชฐเซ เชเซเชฌเชฒเชจเซ เชซเชฐเซเชฅเซ เชจเซเชเชงเชฃเซ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เช เชธเชฐเชณ เชฐเซเชคเซ เชเชฐเซ เชถเชเชพเชฏ เชเซ: เชธเซเชเซเชฐเชซเซเชฐเชจเซเชเชจเซ เชฒเชพเชเชกเชพเชจเซเช เชชเชพเชคเชณเซเช เชชเชก เชซเชฐเซเชฅเซ เชตเชพเชเชเซ, เชธเซเชเซเชฎเชพ เชฒเซ เช เชจเซ เชคเซเชจเชพ เชเชงเชพเชฐเซ DDL เชฌเชจเชพเชตเซ, เชเซเชจเซ เชธเชพเชฅเซ 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].เชฌเชฆเชฒเซ(":", "`:").เชฌเชฆเชฒเซ("<", "<`").เชฌเชฆเชฒเซ(",", ",`").เชฌเชฆเชฒเซ("เชเชฐเซ<`", "เชเชฐเซ<") เชธเซเชฐเชเซเชทเชฟเชค DDL เชฌเชจเชพเชตเซ เชเซ, เชเชเชฒเซ เชเซ เชคเซเชจเชพ เชฌเชฆเชฒเซ:
create table tname (_field1 string, 1field string)
"_field1, 1field" เชเซเชตเชพ เชซเซเชฒเซเชก เชจเชพเชฎเซ เชธเชพเชฅเซ, เชเซเชฏเชพเช เชซเซเชฒเซเชกเชจเชพ เชจเชพเชฎเซ เชเชเชเซ เชเชฏเชพ เชนเซเชฏ เชคเซเชฏเชพเช เชธเซเชฐเชเซเชทเชฟเชค DDL เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ: เชเซเชฌเชฒ `tname` (`_field1` เชธเซเชเซเชฐเชฟเชเช, `1field` เชธเซเชเซเชฐเชฟเชเช) เชฌเชจเชพเชตเซ.
เชชเซเชฐเชถเซเชจ เชเชญเซ เชฅเชพเชฏ เชเซ: เชธเชเชชเซเชฐเซเชฃ เชธเซเชเซเชฎเชพ (pf เชเซเชกเชฎเชพเช) เชธเชพเชฅเซ เชกเซเชเชพเชซเซเชฐเซเชฎ เชเซเชตเซ เชฐเซเชคเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชฎเซเชณเชตเชตเซ? เช เชชเซเชเชซ เชเซเชตเซ เชฐเซเชคเซ เชฎเซเชณเชตเชถเซ? เช เชชเชพเชเชเชฎเซ เชธเชฎเชธเซเชฏเชพ เชเซ. เชซเซเชฒเซเชกเชฐเชฎเชพเชเชฅเซ เชคเชฎเชพเชฎ เชชเชพเชฐเซเชเซเชถเชจเซเชจเซ เชธเซเชเซเชฎเชจเซ เชเชพเชฐเซเชเซเช เชถเซเชเซเชธเชจเซ เชฒเชพเชเชกเชพเชจเซ เชซเชพเชเชฒเซ เชธเชพเชฅเซ เชซเชฐเซเชฅเซ เชตเชพเชเชเซ? เช เชชเชฆเซเชงเชคเชฟ เชธเซเชฅเซ เชธเชฒเชพเชฎเชค เชเซ, เชชเชฐเชเชคเซ เชฎเซเชถเซเชเซเชฒ เชเซ.
เชธเซเชเซเชฎเชพ เชชเชนเซเชฒเซเชฅเซ เช 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 เชฌเชจเชพเชตเซเช เชเซเช.
เชเซ เชเชเซ เชธเชพเชเชเชณ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ, เชเชเชฒเซ เชเซ, เชคเซเชฏเชพเช เชชเซเชฐเชพเชฐเชเชญเชฟเช เชฒเซเชก เชนเชคเซ, เช
เชจเซ เชเซเชทเซเชเช เชฎเชงเชชเซเชกเซเชฎเชพเช เชฏเซเชเซเชฏ เชฐเซเชคเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชนเชคเซเช, เชคเซ เชชเชเซ เช
เชฎเชจเซ เช
เชชเชกเซเช เชเชฐเซเชฒ เชเซเชฌเชฒ เชธเซเชเซเชฎเชพ เชฎเชณเซ เชเซ.
เช เชจเซ เชเซเชฒเซเชฒเซ เชธเชฎเชธเซเชฏเชพ เช เชเซ เชเซ เชคเชฎเซ เชฎเชงเชชเซเชกเซ เชเซเชทเซเชเชเชฎเชพเช เชซเชเซเชค เชชเชพเชฐเซเชเซเชถเชจ เชเชฎเซเชฐเซ เชถเชเชคเชพ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เชคเซ เชคเซเชเซ เชเชถเซ. เชคเชฎเชพเชฐเซ เชคเซเชจเชพ เชชเชพเชฐเซเชเซเชถเชจ เชธเซเชเซเชฐเชเซเชเชฐเชจเซ เช เซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชฎเชงเชชเซเชกเซเชจเซ เชฆเชฌเชพเชฃ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ:
from pyspark.sql import HiveContext
hc = HiveContext(spark)
hc.sql("MSCK REPAIR TABLE " + db + "." + destTable)
JSON เชตเชพเชเชเชตเชพเชจเซเช เช เชจเซ เชคเซเชจเชพ เชเชงเชพเชฐเซ เชธเซเชเซเชฐเชซเซเชฐเชจเซเช เชฌเชจเชพเชตเชตเชพเชจเซเช เชธเชฐเชณ เชเชพเชฐเซเชฏ เช เชธเชเชเซเชฏ เชเชฐเซเชญเชฟเชค เชฎเซเชถเซเชเซเชฒเซเชเชจเซ เชฆเซเชฐ เชเชฐเชตเชพเชฎเชพเช เชชเชฐเชฟเชฃเชฎเซ เชเซ, เชเชเซเชฒเซ เชเซเชจเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เช เชฒเชเชฅเซ เชถเซเชงเชตเซเช เชชเชกเชถเซ. เช เชจเซ เช เชเชเซเชฒเซ เชธเชฐเชณ เชนเซเชตเชพ เชเชคเชพเช, เชคเซเชฎเชจเซ เชถเซเชงเชตเชพเชฎเชพเช เชเชฃเซ เชธเชฎเชฏ เชฒเชพเชเซ เชเซ.
เชถเซเชเซเชธเชจเชพ เชฌเชพเชเชงเชเชพเชฎเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพ เชฎเชพเชเซ, เชฎเชพเชฐเซ เช เชเชฐเชตเซเช เชชเชกเซเชฏเซเช:
- เชถเซเชเซเชธเชฎเชพเช เชชเชพเชฐเซเชเซเชถเชจเซ เชเชฎเซเชฐเซ, เชธเซเชตเชพ เชซเชพเชเชฒเซเชฅเซ เชเซเชเชเชพเชฐเซ เชฎเซเชณเชตเซ
- เชธเซเชชเชพเชฐเซเชเซ เชเชพเชเชช เชเชฐเซเชฒ เชธเซเชคเซเชฐเซเชค เชกเซเชเชพเชฎเชพเช เชเชพเชฒเซ เชซเซเชฒเซเชก เชธเชพเชฅเซ เชกเซเชฒ เชเชฐเซ
- เชธเซเชเซเชฐเชฟเชเช เชชเชฐ เชธเชฐเชณ เชชเซเชฐเชเชพเชฐเซ เชเชพเชธเซเช เชเชฐเซ
- เชซเซเชฒเซเชกเชจเชพ เชจเชพเชฎเซเชจเซ เชฒเซเช เชฐเชเซเชธเชฎเชพเช เชเชจเซเชตเชฐเซเช เชเชฐเซ
- เชฎเชงเชชเซเชกเซ (DDL เชเชจเชฐเซเชถเชจ) เชฎเชพเช เช เชฒเช เชกเซเชเชพ เช เชชเชฒเซเชก เช เชจเซ เชเซเชฌเชฒ เชจเซเชเชงเชฃเซ
- Hive เชธเชพเชฅเซ เช เชธเชเชเชค เชนเซเช เชถเชเซ เชคเซเชตเชพ เชซเซเชฒเซเชก เชจเชพเชฎเซเชฅเซ เชฌเชเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช
- Hive เชฎเชพเช เชเซเชทเซเชเช เชจเซเชเชงเชฃเซ เชเซเชตเซ เชฐเซเชคเซ เช เชชเชกเซเช เชเชฐเชตเซ เชคเซ เชเชพเชฃเซ
เชธเชพเชฐเชพเชเชถเชฎเชพเช, เช เชฎเซ เชจเซเชเชงเซเช เชเซเช เชเซ เชฆเซเชเชพเชจเชจเซ เชฌเชพเชฐเซเช เชฌเชจเชพเชตเชตเชพเชจเซ เชจเชฟเชฐเซเชฃเชฏ เชเชฃเซ เชฎเซเชถเซเชเซเชฒเซเชเชฅเซ เชญเชฐเชชเซเชฐ เชเซ. เชคเซเชฅเซ, เช เชฎเชฒเซเชเชฐเชฃเชฎเชพเช เชฎเซเชถเซเชเซเชฒเซเชเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เชธเชซเชณ เชเซเชถเชณเชคเชพ เชงเชฐเชพเชตเชคเชพ เช เชจเซเชญเชตเซ เชญเชพเชเซเชฆเชพเชฐเชจเซ เชธเชเชชเชฐเซเช เชเชฐเชตเซ เชตเชงเซ เชธเชพเชฐเซเช เชเซ.
เช เชฒเซเช เชตเชพเชเชเชตเชพ เชฌเชฆเชฒ เชเชญเชพเชฐ, เช
เชฎเชจเซ เชเชถเชพ เชเซ เชเซ เชคเชฎเชจเซ เชฎเชพเชนเชฟเชคเซ เชเชชเชฏเซเชเซ เชฒเชพเชเชถเซ.
เชธเซเชฐเซเชธ: www.habr.com