เจ…เจญเจฟเจ†เจธ เจตเจฟเฉฑเจš เจธเจชเจพเจฐเจ• เจธเจ•เฉ€เจฎเจพ เจˆเจตเฉ‡เจฒเฉ‚เจธเจผเจจ

เจชเจฟเจ†เจฐเฉ‡ เจชเจพเจ เจ•เฉ‹, เจšเฉฐเจ—เจพ เจฆเจฟเจจ!

เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš, 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹