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

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

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

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

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

เชŸเซ‡เชฌเชฒ เชธเซเช•เซ€เชฎเชพเชจเซ‡ เชธเชฎเชœเชตเซเช‚

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

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

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

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

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

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

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

# ะกะณะตะฝะตั€ะธั€ัƒะตะผ 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)

เช—เซเชฐเชพเชซ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡, เชจเซ€เชšเซ‡ เช†เชชเซ‡เชฒ เชธเซเชชเชพเชฐเซเช• 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 (เชกเซ‡เชŸเชพ) เชซเชพเช‡เชฒเซ‹ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เช†เชตเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชฎเชพเช‚ เชถเชพเชฎเซ‡เชฒ เช›เซ‡:

  • เช•เซ‰เชฒเชฎ เช•เชพเชขเซ€ เชจเชพเช–เชตเซเช‚
  • เชนเชพเชฒเชจเชพ เช•เซ‹เชฒเชฎเชจเชพ เชกเซ‡เชŸเชพ เชชเซเชฐเช•เชพเชฐเชจเซ‡ เชฌเชฆเชฒเชตเซเช‚ (เชœเช—เซเชฏเชพเช)
  • เชซเช•เซเชค เช•เซ‡เชธเชฎเชพเช‚ เช…เชฒเช— เชชเชกเซ‡ เชคเซ‡เชตเชพ เช•เซ‰เชฒเชฎเชจเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเชตเซเช‚ (เชฆเชพ.เชค. "เชซเซ‚" เช…เชจเซ‡ "เชซเซ‚")

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

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

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

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

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

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

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

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

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

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

เชกเซ‡เชฒเซเชŸเชพ เชคเชณเชพเชตเชฎเชพเช‚ เช–เซ‹เชฆเช•เชพเชฎ: เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจ เชฒเซ‹เช— เช–เซ‹เชฒเชตเซเช‚

เชตเชฟเชกเชฟเช“ เชšเชฒเชพเชตเซ‹

เชธเช‚เชฌเช‚เชงเชฟเชค เชฒเซ‡เช–เซ‹

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

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

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

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

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