เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช•เชฎเชพเช‚ เชกเชพเช‡เชต: เชธเซเช•เซ€เชฎเชพ เชเชจเซเชซเซ‹เชฐเซเชธเชฎเซ‡เชจเซเชŸ เชเชจเซเชก เช‡เชตเซ‹เชฒเซเชฏเซเชถเชจ

เชนเซ‡ เชนเชฌเชฐ! เชนเซเช‚ เชคเชฎเชพเชฐเชพ เชงเซเชฏเชพเชจ เชชเชฐ เชฒเซ‡เช–เชจเซ‹ เช…เชจเซเชตเชพเชฆ เชฐเชœเซ‚ เช•เชฐเซเช‚ เช›เซเช‚ "เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช•เชฎเชพเช‚ เชกเชพเช‡เชตเชฟเช‚เช—: เชธเซเช•เซ€เชฎเชพ เชเชจเซเชซเซ‹เชฐเซเชธเชฎเซ‡เชจเซเชŸ เชเชจเซเชก เช‡เชตเซ‹เชฒเซเชฏเซเชถเชจ" เชฒเซ‡เช–เช•เซ‹ เชฌเซเชฐเชพเช• เชฏเชพเชตเซเช, เชฌเซเชฐเซ‡เชจเชฐ เชนเซ‡เชจเซเชŸเซเช เช…เชจเซ‡ เชกเซ‡เชจเซ€ เชฒเซ€, เชœเซ‡ เช•เซ‹เชฐเซเชธเชจเซ€ เชถเชฐเซ‚เช†เชคเชจเซ€ เช…เชชเซ‡เช•เซเชทเชพเช เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ. เชกเซ‡เชŸเชพ เชเชจเซเชœเชฟเชจเชฟเชฏเชฐ OTUS เชฎเชพเช‚เชฅเซ€.

เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช•เชฎเชพเช‚ เชกเชพเช‡เชต: เชธเซเช•เซ€เชฎเชพ เชเชจเซเชซเซ‹เชฐเซเชธเชฎเซ‡เชจเซเชŸ เชเชจเซเชก เช‡เชตเซ‹เชฒเซเชฏเซเชถเชจ

เชกเซ‡เชŸเชพ, เช…เชฎเชพเชฐเชพ เช…เชจเซเชญเชตเชจเซ€ เชœเซ‡เชฎ, เชธเชคเชค เชธเช‚เชšเชฟเชค เช…เชจเซ‡ เชตเชฟเช•เชธเชฟเชค เชฅเชˆ เชฐเชนเซเชฏเซ‹ เช›เซ‡. เชšเชพเชฒเซ เชฐเชพเช–เชตเชพ เชฎเชพเชŸเซ‡, เชตเชฟเชถเซเชตเชจเชพ เช…เชฎเชพเชฐเชพ เชฎเชพเชจเชธเชฟเช• เชฎเซ‹เชกเซ‡เชฒเซ‹เช เชจเชตเชพ เชกเซ‡เชŸเชพ เชธเชพเชฅเซ‡ เช…เชจเซเช•เซ‚เชฒเชจ เช•เชฐเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชจเชพ เช•เซ‡เชŸเชฒเชพเช•เชฎเชพเช‚ เชจเชตเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เช›เซ‡ - เชตเชธเซเชคเซเช“เชจเซเช‚ เช…เชตเชฒเซ‹เช•เชจ เช•เชฐเชตเชพเชจเซ€ เชจเชตเซ€ เชฐเซ€เชคเซ‹ เชœเซ‡เชจเชพ เชตเชฟเชถเซ‡ เช…เชฎเชจเซ‡ เชชเชนเซ‡เชฒเชพ เช•เซ‹เชˆ เช–เซเชฏเชพเชฒ เชจ เชนเชคเซ‹. เช† เชฎเชพเชจเชธเชฟเช• เชฎเซ‹เชกเชฒ เชŸเซ‡เชฌเชฒ เชธเซเช•เซ€เชฎเชพเชฅเซ€ เช˜เชฃเชพ เช…เชฒเช— เชจเชฅเซ€ เชœเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เชจเชตเซ€ เชฎเชพเชนเชฟเชคเซ€เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชฐเซเช—เซ€เช•เซƒเชค เช…เชจเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ€เช เช›เซ€เช.

เช† เช…เชฎเชจเซ‡ เชธเซเช•เซ€เชฎเชพ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸเชจเชพ เชฎเซเชฆเซเชฆเชพ เชชเชฐ เชฒเชพเชตเซ‡ เช›เซ‡. เชœเซ‡เชฎ เชœเซ‡เชฎ เชตเซเชฏเชตเชธเชพเชฏเชจเชพ เชชเชกเช•เชพเชฐเซ‹ เช…เชจเซ‡ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹ เชธเชฎเชฏ เชธเชพเชฅเซ‡ เชฌเชฆเชฒเชพเชฏ เช›เซ‡, เชคเซ‡เชฎ เชคเชฎเชพเชฐเชพ เชกเซ‡เชŸเชพเชจเซเช‚ เชฎเชพเชณเช–เซเช‚ เชชเชฃ เชฌเชฆเชฒเชพเชฏ เช›เซ‡. เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช• เชกเซ‡เชŸเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชคเชฐเซ€เช•เซ‡ เชจเชตเชพ เชฎเชพเชชเชจเซ‡ เชฐเชœเซ‚ เช•เชฐเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชคเซ‡เชฎเชจเชพ เชŸเซ‡เชฌเชฒ เชธเซเช•เซ€เชฎเชพเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเชณ เชธเชฟเชฎเซ‡เชจเซเชŸเชฟเช•เซเชธเชจเซ€ เชเช•เซเชธเซ‡เชธ เชนเซ‹เชฏ เช›เซ‡. เช† เชธเชพเชงเชจเซ‹เชฎเชพเช‚ เชธเซเช•เซ€เชฎเชพ เชเชจเซเชซเซ‹เชฐเซเชธเชฎเซ‡เชจเซเชŸเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡, เชœเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชญเซ‚เชฒเซ‹ เช…เชฅเชตเชพ เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เชกเซ‡เชŸเชพ เชธเชพเชฅเซ‡ เชคเซ‡เชฎเชจเชพ เช•เซ‹เชทเซเชŸเช•เซ‹เชจเซ‡ เช…เชœเชพเชฃเชคเชพเช‚ เชชเซเชฐเชฆเซ‚เชทเชฟเชค เช•เชฐเชตเชพเชฅเซ€ เชฐเช•เซเชทเชฃ เช†เชชเซ‡ เช›เซ‡, เช…เชจเซ‡ เชธเซเช•เซ€เชฎเชพ เช‡เชตเซ‹เชฒเซเชฏเซเชถเชจ, เชœเซ‡ เชฎเซ‚เชฒเซเชฏเชตเชพเชจ เชกเซ‡เชŸเชพเชจเชพ เชจเชตเชพ เช•เซ‰เชฒเชฎเซเชธเชจเซ‡ เชฏเซ‹เช—เซเชฏ เชธเซเชฅเชพเชจเซ‹ เชชเชฐ เช†เชชเชฎเซ‡เชณเซ‡ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เช† เชฒเซ‡เช–เชฎเชพเช‚, เช…เชฎเซ‡ เช† เชธเชพเชงเชจเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชงเซ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เชœเชˆเชถเซเช‚.

เช•เซ‹เชทเซเชŸเช• เชฏเซ‹เชœเชจเชพเช“เชจเซ‡ เชธเชฎเชœเชตเซ€

เช…เชชเชพเชšเซ‡ เชธเซเชชเชพเชฐเซเช•เชฎเชพเช‚ เชฆเชฐเซ‡เช• เชกเซ‡เชŸเชพเชซเซเชฐเซ‡เชฎเชฎเชพเช‚ เชเช• เชธเซเช•เซ€เชฎเชพ เชนเซ‹เชฏ เช›เซ‡ เชœเซ‡ เชกเซ‡เชŸเชพเชจเชพ เชธเซเชตเชฐเซ‚เชชเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐเซ‹, เช•เซ‰เชฒเชฎเซเชธ เช…เชจเซ‡ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพ. เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช• เชธเชพเชฅเซ‡, เชŸเซ‡เชฌเชฒ เชธเซเช•เซ€เชฎเชพ เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจ เชฒเซ‹เช—เชจเซ€ เช…เช‚เชฆเชฐ JSON เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡.

เชฏเซ‹เชœเชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชถเซเช‚ เช›เซ‡?

เชธเซเช•เซ€เชฎเชพ เชเชจเซเชซเซ‹เชฐเซเชธเชฎเซ‡เชจเซเชŸ, เชœเซ‡เชจเซ‡ เชธเซเช•เซ€เชฎเชพ เชตเซ‡เชฒเชฟเชกเซ‡เชถเชจ เชคเชฐเซ€เช•เซ‡ เชชเชฃ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซ‡ เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช•เชฎเชพเช‚ เชเช• เชธเซเชฐเช•เซเชทเชพ เชชเชฆเซเชงเชคเชฟ เช›เซ‡ เชœเซ‡ เชŸเซ‡เชฌเชฒเชจเซ€ เชธเซเช•เซ€เชฎเชพ เชธเชพเชฅเซ‡ เชฎเซ‡เชณ เช–เชพเชคเชพ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธเชจเซ‡ เชจเช•เชพเชฐเซ€เชจเซ‡ เชกเซ‡เชŸเชพเชจเซ€ เช—เซเชฃเชตเชคเซเชคเชพเชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‡ เช›เซ‡. เชฎเชพเชคเซเชฐ เชฐเชฟเชเชฐเซเชตเซ‡เชถเชจ เชฎเชพเชŸเซ‡เชจเชพ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชฐเซ‡เชธเซเชŸเซ‹เชฐเชจเซเชŸเชจเชพ เชซเซเชฐเชจเซเชŸ เชกเซ‡เชธเซเช• เชชเชฐเชจเซ€ เชชเชฐเชฟเชšเชพเชฐเชฟเช•เชพเชจเซ€ เชœเซ‡เชฎ, เชคเซ‡ เชŸเซ‡เชฌเชฒเชฎเชพเช‚ เชฆเชพเช–เชฒ เช•เชฐเซ‡เชฒ เชกเซ‡เชŸเชพเชจเซ‹ เชฆเชฐเซ‡เช• เช•เซ‰เชฒเชฎ เช…เชชเซ‡เช•เซเชทเชฟเชค เช•เซ‰เชฒเชฎเซเชธเชจเซ€ เช…เชจเซเชฐเซ‚เชช เชธเซ‚เชšเชฟเชฎเชพเช‚ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชคเชชเชพเชธเซ‡ เช›เซ‡ (เชฌเซ€เชœเชพ เชถเชฌเซเชฆเซ‹เชฎเชพเช‚ เช•เชนเซ€เช เชคเซ‹, เชคเซ‡ เชฆเชฐเซ‡เช• เชฎเชพเชŸเซ‡ "เช†เชฐเช•เซเชทเชฃ" เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ. ), เช…เชจเซ‡ เชธเซ‚เชšเชฟเชฎเชพเช‚ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เช•เซ‰เชฒเชฎ เชธเชพเชฅเซ‡เชจเชพ เช•เซ‹เชˆเชชเชฃ เชฐเซ‡เช•เซ‹เชฐเซเชกเชจเซ‡ เชจเช•เชพเชฐเซ€ เช•เชพเชขเซ‡ เช›เซ‡.

เชธเซเช•เซ€เชฎเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡?

เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช• เชธเซเช•เซ€เชฎเชพ-เช“เชจ-เชฐเชพเชˆเชŸ เชšเช•เชพเชธเชฃเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เชŸเซ‡เชฌเชฒ เชชเชฐเชจเชพ เชคเชฎเชพเชฎ เชจเชตเชพ เชฒเช–เชพเชฃเซ‹ เชฒเช–เชตเชพเชจเชพ เชธเชฎเชฏเซ‡ เชฒเช•เซเชทเซเชฏ เช•เซ‹เชทเซเชŸเช•เชจเซ€ เชธเซเช•เซ€เชฎเชพ เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชคเชคเชพ เชฎเชพเชŸเซ‡ เชคเชชเชพเชธเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชœเซ‹ เชธเซเช•เซ€เชฎเชพ เช…เชธเช‚เช—เชค เชนเซ‹เชฏ, เชคเซ‹ เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช• เชตเซเชฏเชตเชนเชพเชฐเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฐเชฆ เช•เชฐเซ‡ เช›เซ‡ (เช•เซ‹เชˆ เชกเซ‡เชŸเชพ เชฒเช–เชพเชฏเซ‡เชฒ เชจเชฅเซ€) เช…เชจเซ‡ เช…เชธเช‚เช—เชคเชคเชพเชจเซ€ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‡ เชธเซ‚เชšเชจเชพ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡ เช…เชชเชตเชพเชฆ เช‰เชญเชพ เช•เชฐเซ‡ เช›เซ‡.
เชฐเซ‡เช•เซ‹เชฐเซเชก เชŸเซ‡เชฌเชฒ เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชค เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช• เชจเซ€เชšเซ‡เชจเชพ เชจเชฟเชฏเชฎเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เชฒเช–เซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเซ€ เชกเซ‡เชŸเชพเชซเซเชฐเซ‡เชฎ:

  • เชฒเช•เซเชทเซเชฏ เช•เซ‹เชทเซเชŸเช•เชจเซ€ เชฏเซ‹เชœเชจเชพเชฎเชพเช‚ เชจ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชตเชงเชพเชฐเชพเชจเชพ เช•เซ‰เชฒเชฎ เชธเชฎเชพเชตเซ€ เชถเช•เชคเชพ เชจเชฅเซ€. เชคเซ‡เชจเชพเชฅเซ€ เชตเชฟเชชเชฐเชฟเชค, เชœเซ‹ เช†เชตเชจเชพเชฐเชพ เชกเซ‡เชŸเชพเชฎเชพเช‚ เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚เชฅเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชคเชฎเชพเชฎ เช•เซ‰เชฒเชฎ เชจ เชนเซ‹เชฏ เชคเซ‹ เชฌเชงเซเช‚ เชธเชพเชฐเซเช‚ เช›เซ‡ - เช† เช•เซ‰เชฒเชฎเซเชธเชจเซ‡ เช–เชพเชฒเซ€ เชฎเซ‚เชฒเซเชฏเซ‹ เชธเซ‹เช‚เชชเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.
  • เช•เซ‰เชฒเชฎ เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐเซ‹ เชนเซ‹เชˆ เชถเช•เชคเชพ เชจเชฅเซ€ เชœเซ‡ เชฒเช•เซเชทเซเชฏ เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚ เช•เซ‰เชฒเชฎเชจเชพ เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐเซ‹เชฅเซ€ เช…เชฒเช— เชนเซ‹เชฏ. เชœเซ‹ เชฒเช•เซเชทเซเชฏ เช•เซ‹เชทเซเชŸเช• เช•เซ‰เชฒเชฎเชฎเชพเช‚ StringType เชกเซ‡เชŸเชพ เชนเซ‹เชฏ, เชชเชฐเช‚เชคเซ DataFrame เชฎเชพเช‚ เช…เชจเซเชฐเซ‚เชช เช•เซ‰เชฒเชฎ IntegerType เชกเซ‡เชŸเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡, เชคเซ‹ เชธเซเช•เซ€เชฎเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เช…เชชเชตเชพเชฆ เช•เชฐเชถเซ‡ เช…เชจเซ‡ เชฒเซ‡เช–เชจ เช‘เชชเชฐเซ‡เชถเชจ เชฅเชตเชพเชฅเซ€ เช…เชŸเช•เชพเชตเชถเซ‡.
  • เช•เซ‰เชฒเชฎ เชจเชพเชฎเซ‹ เชธเชฎเชพเชตเซ€ เชถเช•เชคเชพ เชจเชฅเซ€ เชœเซ‡ เชซเช•เซเชค เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชœ เช…เชฒเช— เชนเซ‹เชฏ. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชธเชฎเชพเชจ เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚ 'Foo' เช…เชจเซ‡ 'foo' เชจเชพเชฎเชจเซ€ เช•เซ‰เชฒเชฎ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชจเชฅเซ€. เชœเซเชฏเชพเชฐเซ‡ เชธเซเชชเชพเชฐเซเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เซ‡เชธ-เชธเช‚เชตเซ‡เชฆเชจเชถเซ€เชฒ เช…เชฅเชตเชพ เช•เซ‡เชธ-เชธเช‚เชตเซ‡เชฆเชจเชถเซ€เชฒ (เชกเชฟเชซเซ‹เชฒเซเชŸ) เชฎเซ‹เชกเชฎเชพเช‚ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช• เช•เซ‡เชธ-เชธเช‚เชฐเช•เซเชทเชฟเชค เช›เซ‡ เชชเชฐเช‚เชคเซ เชธเซเช•เซ€เชฎเชพ เชธเซเชŸเซ‹เชฐเซ‡เชœเชฎเชพเช‚ เช…เชธเช‚เชตเซ‡เชฆเชจเชถเซ€เชฒ เช›เซ‡. เชธเซเชคเช‚เชญเชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช…เชจเซ‡ เชชเชฐเชค เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชฒเชพเช•เชกเซ€ เช•เซ‡เชธ เชธเช‚เชตเซ‡เชฆเชจเชถเซ€เชฒ เชนเซ‹เชฏ เช›เซ‡. เชธเช‚เชญเชตเชฟเชค เชญเซ‚เชฒเซ‹, เชกเซ‡เชŸเชพ เชญเซเชฐเชทเซเชŸเชพเชšเชพเชฐ, เช…เชฅเชตเชพ เชกเซ‡เชŸเชพ เช–เซ‹เชŸเชจเซ‡ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡ (เช•เช‚เชˆเช• เชœเซ‡เชจเซ‹ เช†เชชเชฃเซ‡ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฐเซ€เชคเซ‡ Databricks เชชเชฐ เช…เชจเซเชญเชต เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹), เช…เชฎเซ‡ เช† เชฎเชฐเซเชฏเชพเชฆเชพ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เช›เซ‡.

เช†เชจเซ‡ เชธเชฎเชœเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช• เชŸเซ‡เชฌเชฒเชฎเชพเช‚ เช•เซ‡เชŸเชฒเซ€เช• เชจเชตเซ€ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡เชฒ เช•เซ‰เชฒเชฎ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€เช เช›เซ€เช เชคเซเชฏเชพเชฐเซ‡ เชจเซ€เชšเซ‡ เช†เชชเซ‡เชฒเชพ เช•เซ‹เชกเชฎเชพเช‚ เชถเซเช‚ เชฅเชพเชฏ เช›เซ‡ เชœเซ‡ เชคเซ‡เชฎเชจเซ‡ เชธเซเชตเซ€เช•เชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชนเชœเซ€ เช—เซ‹เช เชตเซ‡เชฒ เชจเชฅเซ€.

# ะกะณะตะฝะตั€ะธั€ัƒะตะผ DataFrame ัััƒะด, ะบะพั‚ะพั€ั‹ะน ะผั‹ ะดะพะฑะฐะฒะธะผ ะฒ ะฝะฐัˆัƒ ั‚ะฐะฑะปะธั†ัƒ Delta Lake
loans = sql("""
            SELECT addr_state, CAST(rand(10)*count as bigint) AS count,
            CAST(rand(10) * 10000 * count AS double) AS amount
            FROM loan_by_state_delta
            """)

# ะ’ั‹ะฒะตัั‚ะธ ะธัั…ะพะดะฝัƒัŽ ัั…ะตะผัƒ DataFrame
original_loans.printSchema()

root
  |-- addr_state: string (nullable = true)
  |-- count: integer (nullable = true)
 
# ะ’ั‹ะฒะตัั‚ะธ ะฝะพะฒัƒัŽ ัั…ะตะผัƒ DataFrame
loans.printSchema()
 
root
  |-- addr_state: string (nullable = true)
  |-- count: integer (nullable = true)
  |-- amount: double (nullable = true) # new column
 
# ะŸะพะฟั‹ั‚ะบะฐ ะดะพะฑะฐะฒะธั‚ัŒ ะฝะพะฒั‹ะน DataFrame (ั ะฝะพะฒั‹ะผ ัั‚ะพะปะฑั†ะพะผ) ะฒ ััƒั‰ะตัั‚ะฒัƒัŽั‰ัƒัŽ ั‚ะฐะฑะปะธั†ัƒ
loans.write.format("delta") 
           .mode("append") 
           .save(DELTALAKE_PATH)

Returns:

A schema mismatch detected when writing to the Delta table.
 
To enable schema migration, please set:
'.option("mergeSchema", "true")'
 
Table schema:
root
-- addr_state: string (nullable = true)
-- count: long (nullable = true)
 
Data schema:
root
-- addr_state: string (nullable = true)
-- count: long (nullable = true)
-- amount: double (nullable = true)
 
If Table ACLs are enabled, these options will be ignored. Please use the ALTER TABLE command for changing the schema.

เช†เชชเชฎเซ‡เชณเซ‡ เชจเชตเซ€ เช•เซ‰เชฒเชฎ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡, เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช• เชธเซเช•เซ€เชฎเชพ เชฒเชพเชฆเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฒเช–เชตเชพเชจเซเช‚ เชฌเช‚เชง เช•เชฐเซ‡ เช›เซ‡. เช•เชฏเซ‹ เช•เซ‰เชฒเชฎ (เช…เชฅเชตเชพ เช•เซ‰เชฒเชฎเชจเซ‹ เชธเชฎเซ‚เชน) เชตเชฟเชธเช‚เช—เชคเชคเชพเชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชธเซเชชเชพเชฐเซเช• เชธเชฐเช–เชพเชฎเชฃเซ€ เชฎเชพเชŸเซ‡ เชธเซเชŸเซ‡เช• เชŸเซเชฐเซ‡เชธเชฎเชพเช‚เชฅเซ€ เชฌเช‚เชจเซ‡ เชธเซเช•เซ€เชฎเชพ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเซ‡ เช›เซ‡.

เชธเซเช•เซ€เชฎเชพ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฅเซ€ เชถเซเช‚ เชซเชพเชฏเชฆเซ‹ เชฅเชพเชฏ เช›เซ‡?

เช•เชพเชฐเชฃ เช•เซ‡ เชธเซเช•เซ€เชฎเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชเช•เชฆเชฎ เช•เชกเช• เชคเชชเชพเชธ เช›เซ‡, เชคเซ‡ เช‰เชคเซเชชเชพเชฆเชจ เช…เชฅเชตเชพ เชตเชชเชฐเชพเชถ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชธเซเชตเชšเซเช›, เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เชกเซ‡เชŸเชพ เชธเซ‡เชŸเชจเชพ เชฆเซเชตเชพเชฐเชชเชพเชณ เชคเชฐเซ€เช•เซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เช‰เชคเซเชคเชฎ เชธเชพเชงเชจ เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช•เซ‹เชทเซเชŸเช•เซ‹ เชชเชฐ เชฒเชพเช—เซ เชฅเชพเชฏ เช›เซ‡ เชœเซ‡ เชธเซ€เชงเชพ เชกเซ‡เชŸเชพ เชซเซ€เชก เช•เชฐเซ‡ เช›เซ‡:

  • เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช— เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเซเชธ
  • BI เชกเซ‡เชถเชฌเซ‹เชฐเซเชกเซเชธ
  • เชกเซ‡เชŸเชพ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เช…เชจเซ‡ เชตเชฟเชเซเชฏเซเชฒเชพเช‡เชเซ‡เชถเชจ เชŸเซ‚เชฒเซเชธ
  • เช•เซ‹เชˆเชชเชฃ เช‰เชคเซเชชเชพเชฆเชจ เชชเซเชฐเชฃเชพเชฒเซ€ เช•เซ‡ เชœเซ‡เชจเซ‡ เช…เชคเซเชฏเช‚เชค เชธเช‚เชฐเชšเชฟเชค, เชฎเชœเชฌเซ‚เชค เชฐเซ€เชคเซ‡ เชŸเชพเชˆเชช เช•เชฐเซ‡เชฒ เชธเชฟเชฎเซ‡เชจเซเชŸเซ€เช• เชธเซเช•เซ€เชฎเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เช›เซ‡.

เช† เช…เช‚เชคเชฟเชฎ เช…เชตเชฐเซ‹เชง เชฎเชพเชŸเซ‡ เชคเซ‡เชฎเชจเซ‹ เชกเซ‡เชŸเชพ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช˜เชฃเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชธเชฐเชณ "เชฎเชฒเซเชŸเซ€-เชนเซ‹เชช" เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡ เชคเซ‡เชฎเชจเชพ เช•เซ‹เชทเซเชŸเช•เซ‹เชฎเชพเช‚ เชฎเชพเชณเช–เซเช‚ เชฐเชœเซ‚ เช•เชฐเซ‡ เช›เซ‡. เช† เชตเชฟเชถเซ‡ เชตเชงเซ เชœเชพเชฃเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เชฒเซ‡เช– เชคเชชเชพเชธเซ€ เชถเช•เซ‹ เช›เซ‹ เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช• เชธเชพเชฅเซ‡ เช‰เชคเซเชชเชพเชฆเชจ-เช—เซเชฐเซ‡เชก เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช—.

เช…เชฒเชฌเชคเซเชค, เชธเซเช•เซ€เชฎเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชคเชฎเชพเชฐเซ€ เชชเชพเช‡เชชเชฒเชพเช‡เชจเชฎเชพเช‚ เช—เชฎเซ‡ เชคเซเชฏเชพเช‚ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฏเชพเชฆ เชฐเชพเช–เซ‹ เช•เซ‡ เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชŸเซ‡เชฌเชฒ เชชเชฐ เชธเซเชŸเซเชฐเซ€เชฎเชฟเช‚เช— เชจเชฟเชฐเชพเชถเชพเชœเชจเช• เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เชญเซ‚เชฒเซ€ เช—เชฏเชพ เช›เซ‹ เช•เซ‡ เชคเชฎเซ‡ เช†เชตเชจเชพเชฐเชพ เชกเซ‡เชŸเชพเชฎเชพเช‚ เชฌเซ€เชœเซ€ เช•เซ‰เชฒเชฎ เช‰เชฎเซ‡เชฐเซ€ เช›เซ‡.

เชฎเชพเชนเชฟเชคเซ€ เชฎเช‚เชฆเชจ เช…เชŸเช•เชพเชตเซ‡ เช›เซ‡

เช…เชคเซเชฏเชพเชฐ เชธเซเชงเซ€เชฎเชพเช‚ เชคเชฎเซ‡ เชตเชฟเชšเชพเชฐเชคเชพ เชนเชถเซ‹ เช•เซ‡, เช† เชฌเชงเซ€ เชนเชฒเชšเชฒ เชถเซเช‚ เช›เซ‡? เช›เซ‡เชตเชŸเซ‡, เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ เช…เชจเชชเซ‡เช•เซเชทเชฟเชค "เชธเซเช•เซ€เชฎเชพ เชฎเชฟเชธเชฎเซ‡เชš" เชญเซ‚เชฒ เชคเชฎเชจเซ‡ เชคเชฎเชพเชฐเชพ เชตเชฐเซเช•เชซเซเชฒเซ‹เชฎเชพเช‚ เชฒเชˆ เชœเชˆ เชถเช•เซ‡ เช›เซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชœเซ‹ เชคเชฎเซ‡ เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช•เชฎเชพเช‚ เชจเชตเชพ เชนเซ‹เชต. เชถเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€เชฏเชพเชค เชฎเซเชœเชฌ เชธเซเช•เซ€เชฎเชพเชจเซ‡ เชฌเชฆเชฒเชตเชพ เชฆเซ‹ เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ เชนเซเช‚ เชฎเชพเชฐเซ€ เชกเซ‡เชŸเชพเชซเซเชฐเซ‡เชฎ เช—เชฎเซ‡ เชคเซ‡ เชฐเซ€เชคเซ‡ เชฒเช–เซ€ เชถเช•เซเช‚?

เชœเซ‚เชจเซ€ เช•เชนเซ‡เชตเชค เช›เซ‡ เชคเซ‡เชฎ, "เชจเชฟเชตเชพเชฐเชฃเชจเซ‹ เชเช• เช”เช‚เชธ เชเช• เชชเชพเช‰เชจเซเชก เช‰เชชเชšเชพเชฐเชจเซ€ เช•เชฟเช‚เชฎเชค เช›เซ‡." เช…เชฎเซเช• เชธเชฎเชฏเซ‡, เชœเซ‹ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชธเซเช•เซ€เชฎเชพเชจเซ‡ เชฒเชพเช—เซ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชพเชณเชœเซ€ เชจ เชฒเซ‹, เชคเซ‹ เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐ เชธเซเชธเช‚เช—เชคเชคเชพเชจเชพ เชฎเซเชฆเซเชฆเชพเช“ เชคเซ‡เชฎเชจเชพ เช•เชฆเชฐเซ‚เชชเซ€ เชฎเชพเชฅเซเช‚ เชซเชฐเซ€ เชตเชณเชถเซ‡ - เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡ เชธเชœเชพเชคเซ€เชฏ เช•เชพเชšเชพ เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชคเซ‹เชฎเชพเช‚ เชงเชพเชฐเชจเชพ เช•เชฟเชธเซเชธเชพเช“, เชฆเซ‚เชทเชฟเชค เช•เซ‰เชฒเชฎเซเชธ, เชฆเซ‚เชทเชฟเชค เชฎเซ‡เชชเชฟเช‚เช—เซเชธ เช…เชฅเชตเชพ เช…เชจเซเชฏ เชกเชฐเชพเชฎเชฃเซ€ เชตเชธเซเชคเซเช“ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชธเซเชตเชชเซเชจ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ เช–เชฐเชพเชฌ เชธเชชเชจเชพ เชถเซเชฐเซ‡เชทเซเช  เช…เชญเชฟเช—เชฎ เช เช›เซ‡ เช•เซ‡ เช† เชฆเซเชถเซเชฎเชจเซ‹เชจเซ‡ เช—เซ‡เชŸ เชชเชฐ เชฐเซ‹เช•เซ‹ - เชธเซเช•เซ€เชฎเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชธเชพเชฅเซ‡ - เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เชธเชพเชฅเซ‡ เชชเซเชฐเช•เชพเชถเชฎเชพเช‚ เชตเซเชฏเชตเชนเชพเชฐ เช•เชฐเซ‹, เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡เช“ เชคเชฎเชพเชฐเชพ เช‰เชคเซเชชเชพเชฆเชจ เช•เซ‹เชกเชจเซ€ เช…เช‚เชงเชพเชฐเชพเชตเชพเชณเซ€ เชŠเช‚เชกเชพเชฃเซ‹เชฎเชพเช‚ เช›เซ‚เชชเชพเชตเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡.

เชธเซเช•เซ€เชฎเชพ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฅเซ€ เชคเชฎเชจเซ‡ เช–เชพเชคเชฐเซ€ เชฎเชณเซ‡ เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเชฎเซ‡ เชซเซ‡เชฐเชซเชพเชฐเชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เชจเชนเซ€เช‚ เช†เชชเซ‹ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเชฎเชพเชฐเชพ เชŸเซ‡เชฌเชฒเชจเซ€ เชธเซเช•เซ€เชฎเชพ เชฌเชฆเชฒเชพเชถเซ‡ เชจเชนเซ€เช‚. เช† เชกเซ‡เชŸเชพเชจเชพ เชฎเช‚เชฆเชจเชจเซ‡ เช…เชŸเช•เชพเชตเซ‡ เช›เซ‡, เชœเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชจเชตเซ€ เช•เซ‰เชฒเชฎ เชเชŸเชฒเซ€ เชตเชพเชฐเช‚เชตเชพเชฐ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เช…เช—เชพเช‰ เชฎเซ‚เชฒเซเชฏเชตเชพเชจ, เชธเช‚เช•เซเชšเชฟเชค เช•เซ‹เชทเซเชŸเช•เซ‹ เชกเซ‡เชŸเชพ เชกเซ‚เชฌเซ€ เชœเชตเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชคเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เช—เซเชฎเชพเชตเซ‡ เช›เซ‡. เชคเชฎเชจเซ‡ เชˆเชฐเชพเชฆเชพเชชเซ‚เชฐเซเชตเช• เชฌเชจเชตเชพ, เช‰เชšเซเชš เชงเซ‹เชฐเชฃเซ‹ เชธเซ‡เชŸ เช•เชฐเชตเชพ เช…เชจเซ‡ เช‰เชšเซเชš เช—เซเชฃเชตเชคเซเชคเชพเชจเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เชตเชพ เชฎเชพเชŸเซ‡ เชชเซเชฐเซ‹เชคเซเชธเชพเชนเชฟเชค เช•เชฐเซ€เชจเซ‡, เชธเซเช•เซ€เชฎเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชฌเชฐเชพเชฌเชฐ เชคเซ‡ เชœ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชคเซ‡ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ - เชคเชฎเชจเซ‡ เชชเซเชฐเชฎเชพเชฃเชฟเช• เชฐเชนเซ‡เชตเชพ เช…เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชธเซเชชเซเชฐเซ‡เชกเชถเซ€เชŸเซเชธเชจเซ‡ เชธเซเชตเชšเซเช› เชฐเชพเช–เชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡.

เชœเซ‹ เชตเชงเซ เชตเชฟเชšเชพเชฐเชฃเชพ เชชเชฐ เชคเชฎเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเซ‡ เช–เชฐเซ‡เช–เชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชจเชตเซ€ เช•เซ‰เชฒเชฎ เช‰เชฎเซ‡เชฐเซ‹ - เช•เซ‹เชˆ เชตเชพเช‚เชงเซ‹ เชจเชฅเซ€, เชจเซ€เชšเซ‡ เชเช•-เชฒเชพเชˆเชจ เชซเชฟเช•เซเชธ เช›เซ‡. เช‰เช•เซ‡เชฒ เช เชธเชฐเซเช•เชฟเชŸเชจเซ€ เช‰เชคเซเช•เซเชฐเชพเช‚เชคเชฟ เช›เซ‡!

เชธเซเช•เซ€เชฎเชพ เช‰เชคเซเช•เซเชฐเชพเช‚เชคเชฟ เชถเซเช‚ เช›เซ‡?

เชธเซเช•เซ€เชฎเชพ เช‡เชตเซ‹เชฒเซเชฏเซเชถเชจ เช เชเช• เชตเชฟเชถเซ‡เชทเชคเชพ เช›เซ‡ เชœเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชธเชฎเชฏ เชธเชพเชฅเซ‡ เชฌเชฆเชฒเชพเชคเชพ เชกเซ‡เชŸเชพ เช…เชจเซเชธเชพเชฐ เชตเชฐเซเชคเชฎเชพเชจ เชŸเซ‡เชฌเชฒ เชธเซเช•เซ€เชฎเชพเชจเซ‡ เชธเชฐเชณเชคเชพเชฅเซ€ เชฌเชฆเชฒเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชเช• เช…เชฅเชตเชพ เชตเชงเซ เชจเชตเซ€ เช•เซ‰เชฒเชฎเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเช•เซ€เชฎเชพเชจเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เช…เชจเซเช•เซ‚เชฒเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชเชชเซ‡เชจเซเชก เช…เชฅเชตเชพ เชฐเชฟเชฐเชพเชˆเชŸ เช‘เชชเชฐเซ‡เชถเชจ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชคเซ‡เชจเซ‹ เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡.

เชธเซเช•เซ€เชฎเชพ เช‡เชตเซ‹เชฒเซเชฏเซเชถเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡?

เช…เช—เชพเช‰เชจเชพ เชตเชฟเชญเชพเช—เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‡ เช…เชจเซเชธเชฐเซ€เชจเซ‡, เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชธเชฐเชณเชคเชพเชฅเซ€ เชธเซเช•เซ€เชฎเชพ เช‡เชตเซ‹เชฒเซเชฏเซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชจเชตเชพ เช•เซ‰เชฒเชฎ เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡ เช…เช—เชพเช‰ เชธเซเช•เซ€เชฎเชพ เช…เชธเช‚เช—เชคเชคเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชจเช•เชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ. เชธเชฐเช•เซ€เชŸ เช‰เชคเซเช•เซเชฐเชพเช‚เชคเชฟ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เชธเช•เซเชฐเชฟเชฏ เชฅเชพเชฏ เช›เซ‡ .option('mergeSchema', 'true') เชคเชฎเชพเชฐเซ€ เชธเซเชชเชพเชฐเซเช• เชŸเซ€เชฎเชจเซ‡ .write ะธะปะธ .writeStream.

# ะ”ะพะฑะฐะฒัŒั‚ะต ะฟะฐั€ะฐะผะตั‚ั€ mergeSchema
loans.write.format("delta") 
           .option("mergeSchema", "true") 
           .mode("append") 
           .save(DELTALAKE_SILVER_PATH)

เช—เซเชฐเชพเชซ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡, เชจเซ€เชšเซ‡เชจเซ€ Spark SQL เช•เซเชตเซ‡เชฐเซ€ เชšเชฒเชพเชตเซ‹

# ะกะพะทะดะฐะนั‚ะต ะณั€ะฐั„ะธะบ ั ะฝะพะฒั‹ะผ ัั‚ะพะปะฑั†ะพะผ, ั‡ั‚ะพะฑั‹ ะฟะพะดั‚ะฒะตั€ะดะธั‚ัŒ, ั‡ั‚ะพ ะทะฐะฟะธััŒ ะฟั€ะพัˆะปะฐ ัƒัะฟะตัˆะฝะพ
%sql
SELECT addr_state, sum(`amount`) AS amount
FROM loan_by_state_delta
GROUP BY addr_state
ORDER BY sum(`amount`)
DESC LIMIT 10

เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช•เชฎเชพเช‚ เชกเชพเช‡เชต: เชธเซเช•เซ€เชฎเชพ เชเชจเซเชซเซ‹เชฐเซเชธเชฎเซ‡เชจเซเชŸ เชเชจเซเชก เช‡เชตเซ‹เชฒเซเชฏเซเชถเชจ
เชตเซˆเช•เชฒเซเชชเชฟเช• เชฐเซ€เชคเซ‡, เชคเชฎเซ‡ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เชธเชฎเช—เซเชฐ เชธเซเชชเชพเชฐเซเช• เชธเชคเซเชฐ เชฎเชพเชŸเซ‡ เช† เชตเชฟเช•เชฒเซเชช เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ spark.databricks.delta.schema.autoMerge = True เชธเซเชชเชพเชฐเซเช• เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฎเชพเชŸเซ‡. เชชเชฐเช‚เชคเซ เชธเชพเชตเชงเชพเชจเซ€ เชธเชพเชฅเซ‡ เช†เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹, เช•เชพเชฐเชฃ เช•เซ‡ เชธเซเช•เซ€เชฎเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชคเชฎเชจเซ‡ เช…เชœเชพเชฃเชคเชพ เชธเซเช•เซ€เชฎเชพ เช…เชธเช‚เช—เชคเชคเชพเช“ เชฎเชพเชŸเซ‡ เชšเซ‡เชคเชตเชฃเซ€ เช†เชชเชถเซ‡ เชจเชนเซ€เช‚.

เชตเชฟเชจเช‚เชคเซ€เชฎเชพเช‚ เชชเชฐเชฟเชฎเชพเชฃเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเซ€เชจเซ‡ mergeSchema, เชคเชฎเชพเชฎ เช•เซ‰เชฒเชฎ เช•เซ‡ เชœเซ‡ เชกเซ‡เชŸเชพเชซเซเชฐเซ‡เชฎเชฎเชพเช‚ เชนเชพเชœเชฐ เช›เซ‡ เชชเชฐเช‚เชคเซ เชฒเช•เซเชทเซเชฏ เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚ เชจเชฅเซ€ เชคเซ‡ เชฒเช–เชพเชฃ เชตเซเชฏเชตเชนเชพเชฐเชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡ เชธเซเช•เซ€เชฎเชพเชจเชพ เช…เช‚เชคเชฎเชพเช‚ เช†เชชเชฎเซ‡เชณเซ‡ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชจเซ‡เชธเซเชŸเซ‡เชก เชซเซ€เชฒเซเชกเซเชธ เชชเชฃ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช…เชจเซ‡ เช†เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชธเซเชŸเซเชฐเช•เซเชšเชฐ เช•เซ‰เชฒเชฎเซเชธเชจเชพ เช…เช‚เชคเชฎเชพเช‚ เชชเชฃ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

เชกเซ‡เชŸ เชเชจเซเชœเชฟเชจเชฟเชฏเชฐเซ‹ เช…เชจเซ‡ เชกเซ‡เชŸเชพ เชธเชพเชฏเชจเซเชŸเชฟเชธเซเชŸ เช† เชตเชฟเช•เชฒเซเชชเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชœเซ‚เชจเชพ เช•เซ‰เชฒเชฎ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชนเชพเชฒเชจเชพ เชฎเซ‰เชกเชฒเชจเซ‡ เชคเซ‹เชกเซเชฏเชพ เชตเชฟเชจเชพ เชคเซ‡เชฎเชจเชพ เชนเชพเชฒเชจเชพ เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช— เชชเซเชฐเซ‹เชกเช•เซเชถเชจ เช•เซ‹เชทเซเชŸเช•เซ‹เชฎเชพเช‚ เชจเชตเชพ เช•เซ‰เชฒเชฎ (เช•เชฆเชพเชš เชคเชพเชœเซ‡เชคเชฐเชฎเชพเช‚ เชŸเซเชฐเซ…เช• เช•เชฐเชพเชฏเซ‡เชฒ เชฎเซ‡เชŸเซเชฐเชฟเช• เช…เชฅเชตเชพ เช† เชฎเชนเชฟเชจเชพเชจเซเช‚ เชตเซ‡เชšเชพเชฃ เชชเซเชฐเชฆเชฐเซเชถเชจ เช•เซ‰เชฒเชฎ) เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เช•เซ‹เชทเซเชŸเช•เชจเชพ เช‰เชฎเซ‡เชฐเชพ เช…เชฅเชตเชพ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชธเซเช•เซ€เชฎเชพ เช‰เชคเซเช•เซเชฐเชพเช‚เชคเชฟเชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชชเซเชฐเช•เชพเชฐเชจเชพ เชธเซเช•เซ€เชฎเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡:

  • เชจเชตเซ€ เช•เซ‰เชฒเชฎ เช‰เชฎเซ‡เชฐเชตเซ€ (เช† เชธเซŒเชฅเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชฆเซƒเชถเซเชฏ เช›เซ‡)
  • NullType เชฅเซ€ เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐเซ‹ เชฌเชฆเชฒเชตเซ‹ -> เช…เชจเซเชฏ เช•เซ‹เชˆเชชเชฃ เชชเซเชฐเช•เชพเชฐ เช…เชฅเชตเชพ ByteType -> ShortType -> IntegerType เชฎเชพเช‚เชฅเซ€ เชชเซเชฐเชฎเซ‹เชŸ เช•เชฐเชตเซเช‚

เชธเซเช•เซ€เชฎเชพ เช‡เชตเซ‹เชฒเซเชฏเซเชถเชจเชฎเชพเช‚ เช…เชจเซเชฏ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เชจเชฅเซ€, เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เช•เซ‡ เชธเซเช•เซ€เชฎเชพ เช…เชจเซ‡ เชกเซ‡เชŸเชพ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ .option("overwriteSchema", "true"). เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชเชตเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เช•เซ‡ เชœเซเชฏเชพเช‚ เช•เซ‰เชฒเชฎ "Foo" เชฎเซ‚เชณ เชฐเซ‚เชชเซ‡ เชชเซ‚เชฐเซเชฃเชพเช‚เช• เชนเชคเซ€ เช…เชจเซ‡ เชจเชตเซ€ เชธเซเช•เซ€เชฎเชพ เชธเซเชŸเซเชฐเชฟเช‚เช— เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐ เชนเชคเซ€, เชคเซ‹ เชฌเชงเซ€ Parquet(data) เชซเชพเช‡เชฒเซ‹เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เช†เชตเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡:

  • เช•เซ‰เชฒเชฎ เช•เชพเชขเซ€ เชจเชพเช–เชตเซเช‚
  • เชนเชพเชฒเชจเซ€ เช•เซ‰เชฒเชฎเชจเซ‹ เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐ เชฌเชฆเชฒเชตเซ‹ (เชธเซเชฅเชณเชฎเชพเช‚)
  • เช•เซ‰เชฒเชฎเชจเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเชตเซเช‚ เชœเซ‡ เชซเช•เซเชค เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชœ เช…เชฒเช— เชนเซ‹เชฏ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, "Foo" เช…เชจเซ‡ "foo")

เช›เซ‡เชฒเซเชฒเซ‡, เชธเซเชชเชพเชฐเซเช• 3.0 เชจเชพ เช†เช—เชพเชฎเซ€ เชชเซเชฐเช•เชพเชถเชจ เชธเชพเชฅเซ‡, เชธเซเชชเชทเซเชŸ DDL เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชธเชฎเชฐเซเชฅเชฟเชค เชนเชถเซ‡ (ALTER TABLE เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡), เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชŸเซ‡เชฌเชฒ เชธเซเช•เซ€เชฎเชพ เชชเชฐ เชจเซ€เชšเซ‡เชจเซ€ เช•เซเชฐเชฟเชฏเชพเช“ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡:

  • เช•เซ‰เชฒเชฎ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡
  • เช•เซ‰เชฒเชฎ เชŸเชฟเชชเซเชชเชฃเซ€เช“ เชฌเชฆเชฒเชตเซ€
  • เชธเซ‡เชŸเชฟเช‚เช— เชŸเซ‡เชฌเชฒ เชชเซเชฐเซ‹เชชเชฐเซเชŸเซ€เช เช•เซ‡ เชœเซ‡ เชŸเซ‡เชฌเชฒเชจเซ€ เชตเชฐเซเชคเชฃเซ‚เช•เชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจ เชฒเซ‹เช— เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เชคเซ‡ เชธเชฎเชฏเชจเซ€ เชฒเช‚เชฌเชพเชˆ เชธเซ‡เชŸ เช•เชฐเชตเซ€.

เชธเชฐเซเช•เชฟเชŸ เช‰เชคเซเช•เซเชฐเชพเช‚เชคเชฟเชจเซ‹ เชซเชพเชฏเชฆเซ‹ เชถเซเช‚ เช›เซ‡?

เชคเชฎเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชชเชฃ เชธเซเช•เซ€เชฎเชพ เช‡เชตเซ‹เชฒเซเชฏเซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช‡เชฐเชพเชฆเซ‹ เชคเชฎเชพเชฐเชพ เชŸเซ‡เชฌเชฒเชจเซ€ เชธเซเช•เซ€เชฎเชพ เชฌเชฆเชฒเซ‹ (เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เช†เช•เชธเซเชฎเชฟเช• เชฐเซ€เชคเซ‡ เชคเชฎเชพเชฐเชพ เชกเซ‡เชŸเชพเชซเซเชฐเซ‡เชฎเชฎเชพเช‚ เช•เซ‰เชฒเชฎ เช‰เชฎเซ‡เชฐเซเชฏเชพ เชนเซ‹เชฏ เชœเซ‡ เชคเซเชฏเชพเช‚ เชจ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช เชคเซ‡เชจเชพเชฅเซ€ เชตเชฟเชชเชฐเซ€เชค). เชคเชฎเชพเชฐเซ€ เชธเซเช•เซ€เชฎเชพเชจเซ‡ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เช† เชธเซŒเชฅเซ€ เชธเชนเซ‡เชฒเซ‹ เชฐเชธเซเชคเซ‹ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชœเชพเชนเซ‡เชฐ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชฏเซ‹เช—เซเชฏ เช•เซ‰เชฒเชฎ เชจเชพเชฎเซ‹ เช…เชจเซ‡ เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐเซ‹ เช†เชชเชฎเซ‡เชณเซ‡ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡.

เชจเชฟเชทเซเช•เชฐเซเชท

เชธเซเช•เซ€เชฎเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃ เช•เซ‹เชˆเชชเชฃ เชจเชตเซ€ เช•เซ‰เชฒเชฎ เช…เชฅเชตเชพ เช…เชจเซเชฏ เชธเซเช•เซ€เชฎเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชจเช•เชพเชฐเซ‡ เช›เซ‡ เชœเซ‡ เชคเชฎเชพเชฐเชพ เช•เซ‹เชทเซเชŸเช• เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชค เชจเชฅเซ€. เช† เช‰เชšเซเชš เชงเซ‹เชฐเชฃเซ‹เชจเซ‡ เชธเซ‡เชŸ เช•เชฐเซ€เชจเซ‡ เช…เชจเซ‡ เชœเชพเชณเชตเชตเชพเชฅเซ€, เชตเชฟเชถเซเชฒเซ‡เชทเช•เซ‹ เช…เชจเซ‡ เชเชจเซเชœเชฟเชจเชฟเชฏเชฐเซ‹ เชตเชฟเชถเซเชตเชพเชธ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡เชฎเชจเชพ เชกเซ‡เชŸเชพเชฎเชพเช‚ เช‰เชšเซเชšเชคเชฎ เชธเซเชคเชฐเชจเซ€ เช…เช–เช‚เชกเชฟเชคเชคเชพ เช›เซ‡, เชคเซ‡ เชธเซเชชเชทเซเชŸ เช…เชจเซ‡ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡ เชตเชพเชคเชšเซ€เชค เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฎเชจเซ‡ เชตเชงเซ เชธเชพเชฐเชพ เชตเซเชฏเชตเชธเชพเชฏเชฟเช• เชจเชฟเชฐเซเชฃเชฏเซ‹ เชฒเซ‡เชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เชฌเซ€เชœเซ€ เชฌเชพเชœเซ, เชธเซเช•เซ€เชฎเชพ เช‰เชคเซเช•เซเชฐเชพเช‚เชคเชฟ เชธเชฐเชณเซ€เช•เชฐเชฃ เชฆเซเชตเชพเชฐเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เชชเซ‚เชฐเช• เชฌเชจเชพเชตเซ‡ เช›เซ‡ เช†เชฐเซ‹เชช เชธเซเชตเชšเชพเชฒเชฟเชค เชธเซเช•เซ€เชฎเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹. เช›เซ‡เชตเชŸเซ‡, เช•เซ‰เชฒเชฎ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚ เชฎเซเชถเซเช•เซ‡เชฒ เชจ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช.

เชฏเซ‹เชœเชจเชพเชจเซ€ เชซเชฐเชœเชฟเชฏเชพเชค เช…เชฐเชœเซ€ เชฏเชพเช‚เช— เช›เซ‡, เชœเซเชฏเชพเช‚ เชฏเซ‹เชœเชจเชพเชจเซเช‚ เช‰เชคเซเช•เซเชฐเชพเช‚เชคเชฟ เชฏเซ€เชจ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชเช•เชธเชพเชฅเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เช† เชธเซเชตเชฟเชงเชพเช“ เช…เชตเชพเชœเชจเซเช‚ เชฆเชฎเชจ เช…เชจเซ‡ เชธเชฟเช—เซเชจเชฒ เชŸเซเชฏเซเชจเชฟเช‚เช—เชจเซ‡ เชชเชนเซ‡เชฒเชพ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

เช…เชฎเซ‡ เช† เชฒเซ‡เช–เชฎเชพเช‚ เชคเซ‡เชฎเชจเชพ เชฏเซ‹เช—เชฆเชพเชจ เชฎเชพเชŸเซ‡ เชฎเซเช•เซเชฒ เชฎเซ‚เชฐเซเชคเชฟ เช…เชจเซ‡ เชชเซเชฐเชฃเชต เช†เชจเช‚เชฆเชจเซ‹ เชชเชฃ เช†เชญเชพเชฐ เชฎเชพเชจเซ€เช เช›เซ€เช.

เช† เชถเซเชฐเซ‡เชฃเซ€เชจเชพ เช…เชจเซเชฏ เชฒเซ‡เช–เซ‹:

เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช•เชฎเชพเช‚ เชกเชพเช‡เชต เช•เชฐเซ‹: เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจ เชฒเซ‹เช—เชจเซ‡ เช…เชจเชชเซ…เช• เช•เชฐเซ‹

เชตเชฟเชทเชฏ เชชเชฐเชจเชพ เชฒเซ‡เช–เซ‹

เชกเซ‡เชฒเซเชŸเชพ เชฒเซ‡เช• เชธเชพเชฅเซ‡ เช‰เชคเซเชชเชพเชฆเชจ-เช—เซเชฐเซ‡เชก เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช—

เชกเซ‡เชŸเชพ เชฒเซ‡เช• เชถเซเช‚ เช›เซ‡?

เช•เซ‹เชฐเซเชธ เชตเชฟเชถเซ‡ เชตเชงเซ เชœเชพเชฃเซ‹

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹