ื“ืขืœื˜ืึท ืœื™ื™ืง ื•ื ื˜ืขืจื˜ื•ืงื  ื–ื™ืš: ืขื ืคืึธืจืกืžืึทื ื˜ ืื•ืŸ ืกื›ืขืžืข ืขื•ื•ืึทืœื•ืฉืึทืŸ

ื”ืขืœื, ื”ืื‘ืจ! ืื™ืš ืคืึธืจืฉื˜ืขืœืŸ ืฆื• ื“ื™ื™ืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ึทื˜ ืึท ืื™ื‘ืขืจื–ืขืฆื•ื ื’ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ "ื“ื™ื™ื•ื•ื™ื ื’ ืื™ืŸ ื“ืขืœื˜ืึท ืœื™ื™ืง: ืกื›ืขืžืข ืขื ืคืึธืจืกืžืึทื ื˜ ืื•ืŸ ืขื•ื•ืึทืœื•ืฉืึทืŸ" ืžื—ื‘ืจื™ื ื‘ื•ืจืง ื™ื‘ื•ื–, ื‘ืจื ืจ ื”ื™ื ืฅ ืื•ืŸ ื“ืขื ื™ ืœื™, ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ืฆื•ื’ืขื’ืจื™ื™ื˜ ืื™ืŸ ืึทื ื˜ื™ืกืึทืคึผื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ืงื•ืจืก "ื“ืึทื˜ืึท ื™ื ื–ืฉืขื ื™ืจ" ืคึฟื•ืŸ OTUS.

ื“ืขืœื˜ืึท ืœื™ื™ืง ื•ื ื˜ืขืจื˜ื•ืงื  ื–ื™ืš: ืขื ืคืึธืจืกืžืึทื ื˜ ืื•ืŸ ืกื›ืขืžืข ืขื•ื•ืึทืœื•ืฉืึทืŸ

ื“ืึทื˜ืŸ, ื•ื•ื™ ืื•ื ื“ื–ืขืจ ื“ืขืจืคืึทืจื•ื ื’, ืื™ื– ืงืขืกื™ื™ื“ืขืจ ืึทืงื™ื•ืžื™ืึทืœื™ื™ื˜ื™ื ื’ ืื•ืŸ ื™ื•ื•ืึทืœื•ื•ื™ื ื’. ืฆื• ื”ืึทืœื˜ืŸ ื–ื™ืš, ืื•ื ื“ื–ืขืจ ื’ื™ื™ึทืกื˜ื™ืง ืžืึธื“ืขืœืก ืคื•ืŸ ื“ืขืจ ื•ื•ืขืœื˜ ืžื•ื–ืŸ ืึทื“ืึทืคึผื˜ ืฆื• ื ื™ื™ึทืข ื“ืึทื˜ืŸ, ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื•ื•ืึธืก ืึทื ื˜ื”ืึทืœื˜ืŸ ื ื™ื™ึทืข ื“ื™ืžืขื ืฉืึทื ื– - ื ื™ื™ึทืข ื•ื•ืขื’ืŸ ืฆื• ืึธื‘ืกืขืจื•ื•ื™ืจืŸ ื–ืื›ืŸ ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ืงื™ื™ืŸ ื’ืขื“ืึทื ืง ื•ื•ืขื’ืŸ ืคืจื™ืขืจ. ื“ื™ ืžืขื ื˜ืึทืœ ืžืึธื“ืขืœืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืคื™ืœ ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ื™ ื˜ื™ืฉ ืกื˜ืฉืขืžืึทืก ื•ื•ืึธืก ื‘ืึทืฉืœื™ืกืŸ ื•ื•ื™ ืžื™ืจ ืงืึทื˜ืึทื’ืขืจื™ื™ื– ืื•ืŸ ืคึผืจืึธืฆืขืก ื ื™ื™ึทืข ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข.

ื“ืึธืก ื‘ืจืขื ื’ื˜ ืื•ื ื“ื– ืฆื• ื“ื™ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืคื•ืŸ ืกื˜ืฉืขืžืึท ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’. ื•ื•ื™ ื’ืขืฉืขืคื˜ ื˜ืฉืึทืœืึทื ื“ื–ืฉื™ื– ืื•ืŸ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ื˜ื•ื™ืฉืŸ ืื™ื‘ืขืจ ืฆื™ื™ึทื˜, ืึทื–ื•ื™ ืื•ื™ืš ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ื™ื™ืŸ ื“ืึทื˜ืŸ. ื“ืขืœื˜ืึท ืœื™ื™ืง ืžืื›ื˜ ืขืก ื’ืจื™ื ื’ ืฆื• ื‘ืึทืงืขื ืขืŸ ื ื™ื™ึทืข ืžืขื–ืฉืขืจืžืึทื ืฅ ื•ื•ื™ ื“ืึทื˜ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ. ื™ื•ื–ืขืจื– ื”ืึธื‘ืŸ ืฆื•ื˜ืจื™ื˜ ืฆื• ืคึผืฉื•ื˜ ืกืขืžืึทื ื˜ื™ืงืก ืฆื• ืคื™ืจืŸ ื–ื™ื™ืขืจ ื˜ื™ืฉ ืกื˜ืฉืขืžืึทืก. ื“ื™ ืžื›ืฉื™ืจื™ื ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืกื˜ืฉืขืžืึท ืขื ืคืึธืจืกืžืึทื ื˜, ื•ื•ืึธืก ืคึผืจืึทื˜ืขืงืฅ ื™ื•ื–ืขืจื– ืคื•ืŸ ืึทื ื™ื ื˜ืขื ืฉืึทื ืึทืœ ืคึผืึทืœื•ื˜ื™ื ื’ ื–ื™ื™ืขืจ ื˜ื™ืฉืŸ ืžื™ื˜ ืขืจืจืึธืจืก ืึธื“ืขืจ ื•ืžื ื™ื™ื˜ื™ืง ื“ืึทื˜ืŸ, ืื•ืŸ ืกื˜ืฉืขืžืึท ืขื•ื•ืึทืœื•ืฉืึทืŸ, ื•ื•ืึธืก ืึทืœืึทื•ื– ื ื™ื™ึท ืฉืคืืœื˜ืŸ ืคื•ืŸ ื•ื•ืขืจื˜ืคื•ืœ ื“ืึทื˜ืŸ ืฆื• ื–ื™ื™ืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ืฆื•ื ืขืžืขืŸ ืœืึธื•ืงื™ื™ืฉืึทื ื–. ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืžื™ืจ ื•ื•ืขืœืŸ ื•ื ื˜ืขืจื˜ื•ืงื  ื–ื™ืš ื“ื™ืคึผืขืจ ืื™ืŸ ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื“ื™ ืžื›ืฉื™ืจื™ื.

ืคืืจืฉื˜ืื ื“ ื˜ืึทื‘ืœืข ืกื˜ืฉืขืžืึทืก

ื™ืขื“ืขืจ ื“ืึทื˜ืึทืคืจืึทืžืข ืื™ืŸ ืึทืคึผืึทื˜ืฉื™ ืกืคึผืึทืจืง ื›ึผื•ืœืœ ืึท ืกื›ืขืžืข ื•ื•ืึธืก ื“ื™ืคื™ื™ื ื– ื“ื™ ืคืึธืจืขื ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ, ืึทื–ืึท ื•ื•ื™ ื“ืึทื˜ืŸ ื˜ื™ื™ืคึผืก, ืฉืคืืœื˜ืŸ ืื•ืŸ ืžืขื˜ืึทื“ืึทื˜ืึท. ืžื™ื˜ Delta Lake, ื“ื™ ื˜ื™ืฉ ืกื˜ืฉืขืžืึท ืื™ื– ืกื˜ืึธืจื“ ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜ ืื™ืŸ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืงืœืึธืฅ.

ื•ื•ืึธืก ืื™ื– ืกื›ืขืžืข ืขื ืคืึธืจืกืžืึทื ื˜?

ืกื˜ืฉืขืžืึท ืขื ืคืึธืจืกืžืึทื ื˜, ืื•ื™ืš ื‘ืืงืื ื˜ ื•ื•ื™ ืกื˜ืฉืขืžืึท ื•ื•ืึทืœื™ื“ืึทื˜ื™ืึธืŸ, ืื™ื– ืึท ื–ื™ื›ืขืจื”ื™ื™ื˜ ืžืขืงืึทื ื™ื–ืึทื ืื™ืŸ ื“ืขืœื˜ืึท ืœื™ื™ืง ื•ื•ืึธืก ื™ื ืฉื•ืจื– ื“ืึทื˜ืŸ ืงื•ื•ืึทืœื™ื˜ืขื˜ ื“ื•ืจืš ืจื™ื“ื–ืฉืขืงื˜ื™ื ื’ ืจืขืงืึธืจื“ืก ื•ื•ืึธืก ื˜ืึธืŸ ื ื™ื˜ ื’ืœื™ื™ึทื›ืŸ ื“ื™ ื˜ื™ืฉ ืกื˜ืฉืขืžืึท. ื•ื•ื™ ื“ื™ ื‘ืึทืœืขื‘ืึธืกื˜ืข ืื™ืŸ ื“ื™ ืคืจืึธื ื˜ ืฉืจื™ื™ึทื‘ื˜ื™ืฉ ืคื•ืŸ ืึท ืคืึธืœืงืก ืจืขื–ืขืจื•ื•ืึทืฆื™ืข-ื‘ืœื•ื™ื– ืจืขืกื˜ืึธืจืึทืŸ, ื–ื™ ื˜ืฉืขืงืก ืฆื™ ื™ืขื“ืขืจ ื–ื™ื™ึทืœ ืคื•ืŸ ื“ืึทื˜ืŸ ืืจื™ื™ืŸ ืื™ืŸ ื“ื™ ื˜ื™ืฉ ืื™ื– ืื™ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืจืฉื™ืžื” ืคื•ืŸ ื“ืขืจื•ื•ืึทืจื˜ ืฉืคืืœื˜ืŸ (ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ืฆื™ ืขืก ืื™ื– ืึท "ืจืขื–ืขืจื•ื•ื™ื™ืฉืึทืŸ" ืคึฟืึทืจ ื™ืขื“ืขืจ ืคื•ืŸ ื–ื™ื™ ), ืื•ืŸ ืคืืจื•ื•ืืจืคืŸ ืงื™ื™ืŸ ืจืขืงืึธืจื“ืก ืžื™ื˜ ืฉืคืืœื˜ืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืื™ืŸ ื“ืขืจ ืจืฉื™ืžื”.

ื•ื•ื™ ื˜ื•ื˜ ืกื›ืขืžืข ืขื ืคืึธืจืกืžืึทื ื˜ ืึทืจื‘ืขื˜?

ื“ืขืœื˜ืึท ืœื™ื™ืง ื ื™ืฆื˜ ืกื˜ืฉืขืžืึท-ืื•ื™ืฃ-ืฉืจื™ื™ื‘ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’, ื•ื•ืึธืก ืžื™ื˜ืœ ืึทื– ืึทืœืข ื ื™ื™ึท ืฉืจื™ื™ื‘ื˜ ืฆื• ื“ื™ ื˜ื™ืฉ ื–ืขื ืขืŸ ืึธืคึผื’ืขืฉื˜ืขืœื˜ ืคึฟืึทืจ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™ ืžื™ื˜ ื“ื™ ืฆื™ืœ ื˜ื™ืฉ ืกื˜ืฉืขืžืึท ืื™ืŸ ืฉืจื™ื™ื‘ืŸ ืฆื™ื™ื˜. ืื•ื™ื‘ ื“ื™ ืกื›ืขืžืข ืื™ื– ืกืชื™ืจื”, Delta Lake ืึทื‘ืึธืจื˜ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืœืขื’ืึทืžืจืข (ืงื™ื™ืŸ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ื’ืขืฉืจื™ื‘ืŸ) ืื•ืŸ ืจื™ื™ื–ืึทื– ืึท ื•ื™ืกื ืขื ืฆื• ื’ืขื‘ื  ืฆื• ื•ื•ื™ืกืŸ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ืคื•ืŸ ื“ื™ ื™ื ืงืึทื ืกื™ืกื˜ืึทื ืก.
Delta Lake ื ื™ืฆื˜ ื“ื™ ืคืืœื’ืขื ื“ืข ื›ึผืœืœื™ื ืฆื• ื‘ืึทืฉืœื™ืกืŸ ืฆื™ ืึท ืจืขืงืึธืจื“ ืื™ื– ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ ืึท ื˜ื™ืฉ. ืฉืจื™ื™ื‘ื˜ืึทื‘ืœืข ื“ืึทื˜ืึทืคืจืึทืžืข:

  • ืงืขื ืขืŸ ื ื™ืฉื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ื ืึธืš ืฉืคืืœื˜ืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืื™ืŸ ื“ื™ ืกื›ืขืžืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืฆื™ืœ ื˜ื™ืฉ. ืงืึธื ื•ื•ืขืจืกืขืœื™, ืึทืœืฅ ืื™ื– ื’ื•ื˜ ืื•ื™ื‘ ื“ื™ ื™ื ืงืึทืžื™ื ื’ ื“ืึทื˜ืŸ ื˜ืึธืŸ ื ื™ื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ืœืขื’ืึทืžืจืข ืึทืœืข ืฉืคืืœื˜ืŸ ืคื•ืŸ ื“ื™ ื˜ื™ืฉ - ื“ื™ ืฉืคืืœื˜ืŸ ื•ื•ืขื˜ ื ืึธืจ ื–ื™ื™ืŸ ืึทืกื™ื™ื ื“ ื ืึทืœ ื•ื•ืึทืœื•ืขืก.
  • ืงืขื ืขืŸ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ื–ื™ื™ึทืœ ื“ืึทื˜ืŸ ื˜ื™ื™ืคึผืก ื•ื•ืึธืก ื–ืขื ืขืŸ ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ื˜ื™ื™ืคึผืก ืคื•ืŸ ื“ื™ ืฉืคืืœื˜ืŸ ืื™ืŸ ื“ื™ ืฆื™ืœ ื˜ื™ืฉ. ืื•ื™ื‘ ื“ืขืจ ืฆื™ืœ ื˜ื™ืฉ ื–ื™ื™ึทืœ ื›ึผื•ืœืœ ืกื˜ืจื™ื ื’ื˜ื™ืคึผืข ื“ืึทื˜ืŸ, ืึธื‘ืขืจ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื–ื™ื™ึทืœ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทืคืจืึทืžืข ื›ึผื•ืœืœ ื™ื ื˜ืขื’ืขืจื˜ื™ืคึผืข ื“ืึทื˜ืŸ, ืกื˜ืฉืขืžืึท ืขื ืคืึธืจืกืžืึทื ื˜ ื•ื•ืขื˜ ื•ื•ืึทืจืคืŸ ืึท ื•ื™ืกื ืขื ืื•ืŸ ืคืึทืจืžื™ื™ึทื“ืŸ ื“ื™ ืฉืจื™ื™ึทื‘ืŸ ืึธืคึผืขืจืึทืฆื™ืข.
  • ืงืขื ืขืŸ ื ื™ืฉื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ื–ื™ื™ึทืœ ื ืขืžืขืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ืึทื ื“ืขืจืฉ ื‘ืœื•ื™ื– ืื™ืŸ ืคืึทืœ. ื“ืขื ืžื™ื˜ืœ ืึทื– ืื™ืจ ืงืขื ืขืŸ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ืฉืคืืœื˜ืŸ ื’ืขื”ื™ื™ืกืŸ 'ืคืึธืึธ' ืื•ืŸ 'ืคื•' ื“ื™ืคื™ื™ื ื“ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื˜ื™ืฉ. ื‘ืฉืขืช ืกืคึผืึทืจืง ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืื™ืŸ ืคืึทืœ-ืฉืคึผื™ืจืขื•ื•ื“ื™ืง ืึธื“ืขืจ ืคืึทืœ-ื™ื ืกืขื ืกื™ื˜ื™ื•ื• (ืคืขืœื™ืงื™ื™ึทื˜) ืžืึธื“ืข, ื“ืขืœื˜ืึท ืœื™ื™ืง ืื™ื– ืคืึทืœ-ืคึผืจืึทื–ืขืจื•ื•ื™ื ื’ ืึธื‘ืขืจ ืื™ื– ื™ื ืกืขื ืกื™ื˜ื™ื•ื• ืื™ืŸ ื“ื™ ืกื˜ืฉืขืžืึท ืกื˜ืึธืจื™ื“ื–ืฉ. ืคึผืึทืจืงื™ื™ ืื™ื– ืคืึทืœ-ืฉืคึผื™ืจืขื•ื•ื“ื™ืง ื•ื•ืขืŸ ืกื˜ืึธืจื™ื ื’ ืื•ืŸ ืฆื•ืจื™ืงืงื•ืžืขืŸ ื–ื™ื™ึทืœ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข. ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืžืขื’ืœืขืš ืขืจืจืึธืจืก, ื“ืึทื˜ืŸ ืงืึธืจื•ืคึผืฆื™ืข ืึธื“ืขืจ ื“ืึทื˜ืŸ ืึธื ื•ื•ืขืจ (ืขืคึผืขืก ืžื™ืจ ืคึผืขืจืกื ืึทืœื™ ื™ืงืกืคึผื™ืจื™ืึทื ืกื˜ ืื™ืŸ Databricks), ืžื™ืจ ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืœื™ื™ื’ืŸ ื“ืขื ื‘ืึทื’ืจืขื ืขืฆื•ื ื’.

ืฆื• ืื™ืœื•ืกื˜ืจื™ืจืŸ ื“ืขื, ืœืึธืžื™ืจ ื ืขืžืขืŸ ืึท ืงื•ืง ืื™ืŸ ื•ื•ืึธืก ื›ืึทืคึผืึทื ื– ืื™ืŸ ื“ื™ ืงืึธื“ ืื•ื ื˜ืŸ ื•ื•ืขืŸ ืžื™ืจ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืœื™ื™ื’ืŸ ืขื˜ืœืขื›ืข ื ื™ื™ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ืฉืคืืœื˜ืŸ ืฆื• ืึท Delta Lake ื˜ื™ืฉ ื•ื•ืึธืก ืื™ื– ื ืึธืš ื ื™ืฉื˜ ืงืึทื ืคื™ื’ื™ืขืจื“ ืฆื• ืึธื ื ืขืžืขืŸ ื–ื™ื™.

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

ืึทื ืฉื˜ืึธื˜ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืฆื•ื’ืขื‘ืŸ ื ื™ื™ึทืข ืฉืคืืœื˜ืŸ, Delta Lake ื™ืžืคึผืึธื•ื–ืึทื– ืึท ืกื›ืขืžืข ืื•ืŸ ืกื˜ืึทืคึผืก ืฉืจื™ื™ื‘ืŸ. ืฆื• ื”ืขืœืคืŸ ื‘ืึทืฉื˜ื™ืžืขืŸ ื•ื•ืึธืก ื–ื™ื™ึทืœ (ืึธื“ืขืจ ื’ืึทื ื’ ืคื•ืŸ ืฉืคืืœื˜ืŸ) ืื™ื– ืงืึธื–ื™ื ื’ ื“ื™ ื“ื™ืกืงืจืขืคึผืึทื ืกื™, ืกืคึผืึทืจืง ืึทื•ื˜ืคึผื•ืฅ ื‘ื™ื™ื“ืข ืกื˜ืฉืขืžืึทืก ืคื•ืŸ ื“ื™ ืกื˜ืึทืง ืฉืคึผื•ืจ ืคึฟืึทืจ ืคืึทืจื’ืœื™ื™ึทืš.

ื•ื•ืึธืก ืื™ื– ื“ื™ ื ื•ืฅ ืคื•ืŸ ืขื ืคืึธืจืกื™ื ื’ ืึท ืกื›ืขืžืข?

ื•ื•ื™ื™ึทืœ ืกื˜ืฉืขืžืึท ืขื ืคืึธืจืกืžืึทื ื˜ ืื™ื– ืึท ืคืขืจืœื™ ืกื˜ืจื™ื ื“ื–ืฉืึทื ื˜ ื˜ืฉืขืง, ืขืก ืื™ื– ืึท ื•ื™ืกื’ืขืฆื™ื™ื›ื ื˜ ื’ืขืฆื™ื™ึทื’ ืฆื• ื ื•ืฆืŸ ื•ื•ื™ ืึท ื˜ื•ื™ืขืจ ื”ื™ืคึผืขืจ ืฆื• ืึท ืจื™ื™ืŸ, ื’ืึธืจ ืคืืจื•ื•ืื ื“ืœืขืŸ ื“ืึทื˜ืŸ ืฉื˜ืขืœืŸ ื•ื•ืึธืก ืื™ื– ื’ืจื™ื™ื˜ ืคึฟืึทืจ ืคึผืจืึธื“ื•ืงืฆื™ืข ืึธื“ืขืจ ืงืึทื ืกืึทืžืฉืึทืŸ. ื˜ื™ืคึผื™ืงืึทืœืœื™ ื’ืขื•ื•ืขื ื“ื˜ ืฆื• ื˜ื™ืฉืŸ ื•ื•ืึธืก ื’ืœื™ื™ืš ืคื™ื˜ืขืจ ื“ืึทื˜ืŸ:

  • ืžืึทืฉื™ืŸ ืœืขืจื ืขืŸ ืึทืœื’ืขืจื™ื“ืึทืžื–
  • 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 ืฆื• ื“ื™ Spark ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ. ืึธื‘ืขืจ ื ื•ืฆืŸ ื“ืขื ืžื™ื˜ ื•ื•ืึธืจืขื ืขืŸ, ื•ื•ื™ื™ึทืœ ืกื˜ืฉืขืžืึท ืขื ืคืึธืจืกืžืึทื ื˜ ื•ื•ืขื˜ ื ื™ื˜ ืžืขืจ ืคืœื™ื ืง ืื™ืจ ืฆื• ืึทื ื™ื ื˜ืขื ืฉืึทื ืึทืœ ืกื˜ืฉืขืžืึท ื™ื ื’ืงืึทื ืกื™ืกื˜ืขื ืกื™ื–.

ื“ื•ืจืš ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ืขื ืคึผืึทืจืึทืžืขื˜ืขืจ ืื™ืŸ ื“ื™ ื‘ืงืฉื” mergeSchema, ืึทืœืข ืฉืคืืœื˜ืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ืคืึธืจืฉื˜ืขืœืŸ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทืคืจืึทืžืข ืึธื‘ืขืจ ื ื™ืฉื˜ ืื™ืŸ ื“ื™ ืฆื™ืœ ื˜ื™ืฉ ื–ืขื ืขืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ืกื˜ืฉืขืžืึท ื•ื•ื™ ื˜ื™ื™ืœ ืคื•ืŸ ืึท ืฉืจื™ื™ึทื‘ืŸ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ. ื ืขืกื˜ืขื“ ืคืขืœื“ืขืจ ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ืื•ืŸ ื“ื™ ื•ื•ืขื˜ ืื•ื™ืš ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ืฆื• ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืกื˜ืจื•ืงื˜ื•ืจ ืฉืคืืœื˜ืŸ.

ื“ืึทื˜ืข ืขื ื“ื–ืฉืึทื ื™ืจื– ืื•ืŸ ื“ืึทื˜ืŸ ืกื™ื™ืึทื ื˜ื™ืก ืงืขื ืขืŸ ื ื•ืฆืŸ ื“ืขื ืึธืคึผืฆื™ืข ืฆื• ืœื™ื™ื’ืŸ ื ื™ื™ึท ืฉืคืืœื˜ืŸ (ื˜ืึธืžืขืจ ืึท ืœืขืฆื˜ื ืก ื˜ืจืึทืงื˜ ืžืขื˜ืจื™ืง ืึธื“ืขืจ ื“ืขื ื—ื•ื“ืฉ ืก ืคืืจืงื•ื™ืคื•ื ื’ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื–ื™ื™ึทืœ) ืฆื• ื–ื™ื™ืขืจ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืžืึทืฉื™ืŸ ืœืขืจื ืขืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข ื˜ื™ืฉืŸ ืึธืŸ ื‘ืจื™ื™ืงื™ื ื’ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืžืึธื“ืขืœืก ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืึทืœื˜ ืฉืคืืœื˜ืŸ.

ื“ื™ ืคืืœื’ืขื ื“ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืกื˜ืฉืขืžืึท ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ืขืจืœื•ื™ื‘ื˜ ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ืกื˜ืฉืขืžืึท ืขื•ื•ืึทืœื•ืฉืึทืŸ ื‘ืขืฉืึทืก ืึท ื˜ื™ืฉ ืึทื“ื™ืฉืึทืŸ ืึธื“ืขืจ ืจื™ืจื™ื™ื˜:

  • ืึทื“ื™ื ื’ ื ื™ื™ึทืข ืฉืคืืœื˜ืŸ (ื“ืึธืก ืื™ื– ื“ื™ ืžืขืจืกื˜ ืคึผืจืึธืกื˜ ืกืฆืขื ืึทืจ)
  • ื˜ืฉืึทื ื’ื™ื ื’ ื“ืึทื˜ืŸ ื˜ื™ื™ืคึผืก ืคื•ืŸ NullType -> ืงื™ื™ืŸ ืื ื“ืขืจืข ื˜ื™ืคึผ ืึธื“ืขืจ ืคึผืจืึทืžืึธื•ื˜ื™ื ื’ ืคึฟื•ืŸ ByteType -> ShortType -> IntegerType

ืื ื“ืขืจืข ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืขืจืœื•ื™ื‘ื˜ ืื™ืŸ ืกื˜ืฉืขืžืึท ืขื•ื•ืึธืœื•ืฆื™ืข ื“ืึทืจืคืŸ ืึทื– ื“ื™ ืกื˜ืฉืขืžืึท ืื•ืŸ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืจื™ืจื™ื˜ืึทืŸ ื“ื•ืจืš ืึทื“ื™ื ื’ .option("overwriteSchema", "true"). ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืŸ ื“ืขื ืคืึทืœ ื•ื•ืขืŸ ื“ื™ ื–ื™ื™ึทืœ "ืคืึธืึธ" ืื™ื– ื’ืขื•ื•ืขืŸ ืขืจื™ื“ื–ืฉื ืึทืœื™ ืึท ื™ื ื˜ืึทื“ื–ืฉืขืจ ืื•ืŸ ื“ื™ ื ื™ื™ึทืข ืกื˜ืฉืขืžืึท ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ืฉื˜ืจื™ืงืœ ื“ืึทื˜ืŸ ื˜ื™ืคึผ, ืึทืœืข ืคึผืึทืจืงื•ื•ืขื˜ (ื“ืึทื˜ืึท) ื˜ืขืงืขืก ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืจื™ืจื™ื˜ืึทืŸ. ืึทื–ืึท ืขื ื“ืขืจื•ื ื’ืขืŸ ืึทืจื™ื™ึทื ื ืขืžืขืŸ:

  • ืื•ื™ืกืžืขืงืŸ ืึท ื–ื™ื™ึทืœ
  • ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ื“ืึทื˜ืŸ ื˜ื™ืคึผ ืคื•ืŸ ืึท ื™ื’ื–ื™ืกื˜ื™ื ื’ ื–ื™ื™ึทืœ (ืื™ืŸ-ืึธืจื˜)
  • ืจื™ื ื™ื™ืžื™ื ื’ ืฉืคืืœื˜ืŸ ื•ื•ืึธืก ืึทื ื“ืขืจืฉ ื–ื™ื™ึทืŸ ื‘ืœื•ื™ื– ืื™ืŸ ืคืึทืœ (ืœืžืฉืœ, "ืคืึธืึธ" ืื•ืŸ "ืคืึธืึธ")

ืฆื•ื ืกื•ืฃ, ืžื™ื˜ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืžืขืœื“ื•ื ื’ ืคื•ืŸ Spark 3.0, ื™ืงืกืคึผืœื™ืกืึทื˜ DDL ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืึธืจ ื’ืขืฉื˜ื™ืฆื˜ (ื ื™ืฆืŸ ALTER TABLE), ืึทืœืึทื•ื™ื ื’ ื ื™ืฆืขืจืก ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืึทืงืฉืึทื ื– ืื•ื™ืฃ ื˜ื™ืฉ ืกื˜ืฉืขืžืึทืก:

  • ืึทื“ื™ื ื’ ืฉืคืืœื˜ืŸ
  • ื˜ืฉืึทื ื’ื™ื ื’ ื–ื™ื™ึทืœ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ
  • ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื˜ื™ืฉ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ื•ื•ืึธืก ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื ืึทื˜ื•ืจ ืคื•ืŸ ื“ื™ ื˜ื™ืฉ, ืึทื–ืึท ื•ื•ื™ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ ืœืขื ื’ ืคื•ืŸ ืฆื™ื™ื˜ ื•ื•ืึธืก ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืงืœืึธืฅ ืื™ื– ืกื˜ืึธืจื“.

ื•ื•ืึธืก ืื™ื– ื“ื™ ื ื•ืฅ ืคื•ืŸ ืงืจื™ื™ึทื– ืขื•ื•ืึธืœื•ืฆื™ืข?

ืกื›ืขืžืข ืขื•ื•ืึธืœื•ืฆื™ืข ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื•ื•ืขืŸ ืื™ืจ ื‘ื“ืขื” ื˜ื•ื™ืฉืŸ ื“ื™ ืกื›ืขืžืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ื™ืŸ ื˜ื™ืฉ (ืื•ื™ื‘ ืื™ืจ ืึทืงืกืึทื“ืขื ืึทืœื™ ืฆื•ื’ืขื’ืขื‘ืŸ ืฉืคืืœื˜ืŸ ืฆื• ื“ื™ื™ืŸ ื“ืึทื˜ืึทืคืจืึทืžืข ื•ื•ืึธืก ื–ืึธืœ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื“ืึธืจื˜). ื“ืึธืก ืื™ื– ื“ื™ ื™ื–ื™ืึทืกื˜ ื•ื•ืขื’ ืฆื• ืžื™ื™ื’ืจื™ื™ื˜ ื“ื™ื™ืŸ ืกื˜ืฉืขืžืึท ื•ื•ื™ื™ึทืœ ืขืก ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืžื•ืกื™ืฃ ื“ื™ ืจื™ื›ื˜ื™ืง ื–ื™ื™ึทืœ ื ืขืžืขืŸ ืื•ืŸ ื“ืึทื˜ืŸ ื˜ื™ื™ืคึผืก ืึธืŸ ื–ื™ื™ ื‘ืคื™ืจื•ืฉ ื“ืขืจืงืœืขืจืŸ.

ืกืึธืฃ

ืกื˜ืฉืขืžืึท ืขื ืคืึธืจืกืžืึทื ื˜ ืึธืคึผื•ื•ืึทืจืคืŸ ืงื™ื™ืŸ ื ื™ื™ึทืข ืฉืคืืœื˜ืŸ ืึธื“ืขืจ ืื ื“ืขืจืข ืกื˜ืฉืขืžืึท ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ ื“ื™ื™ืŸ ื˜ื™ืฉ. ื“ื•ืจืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืื•ืŸ ืžื™ื™ื ื˜ื™ื™ื ื™ื ื’ ื“ื™ ื”ื•ื™ืš ืกื˜ืึทื ื“ืึทืจื“ืก, ืึทื ืึทืœื™ืก ืื•ืŸ ืขื ื“ื–ืฉืึทื ื™ืจื– ืงืขื ืขืŸ ืฆื•ื˜ืจื•ื™ ืึทื– ื–ื™ื™ืขืจ ื“ืึทื˜ืŸ ื”ืึธื‘ืŸ ื“ื™ ื”ืขื›ืกื˜ืŸ ืฉื˜ืึทืคึผืœ ืคื•ืŸ ืึธืจื ื˜ืœืขื›ืงื™ื™ึทื˜, ืงืึทืžื™ื•ื ืึทืงื™ื™ื˜ื™ื ื’ ืขืก ืงืœืืจ ืื•ืŸ ืงืœืืจ, ืึทืœืึทื•ื™ื ื’ ื–ื™ื™ ืฆื• ืžืึทื›ืŸ ื‘ืขืกืขืจ ื’ืขืฉืขืคื˜ ื“ื™ืกื™ื–ืฉืึทื ื–.

ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื”ืึทื ื˜, ืกื˜ืฉืขืžืึท ืขื•ื•ืึทืœื•ืฉืึทืŸ ืงืึทืžืคึผืœืึทืžืึทื ืฅ ืขื ืคืึธืจืกืžืึทื ื˜ ื“ื•ืจืš ืกื™ืžืคึผืœืึทืคื™ื™ื™ื ื’ ืึทืœืขื“ื–ืฉื“ ืึธื˜ืึทืžืึทื˜ื™ืง ืกื˜ืฉืขืžืึท ืขื ื“ืขืจื•ื ื’ืขืŸ. ื ืึธืš ืึทืœืข, ืขืก ื–ืึธืœ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืฉื•ื•ืขืจ ืฆื• ืœื™ื™ื’ืŸ ืึท ื–ื™ื™ึทืœ.

ื“ื™ ื’ืขืฆื•ื•ื•ื ื’ืขืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืกื›ืขืžืข ืื™ื– ื™ืึทื ื’, ื•ื•ื• ื“ื™ ืขื•ื•ืึธืœื•ืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืกื›ืขืžืข ืื™ื– ื™ื™ืŸ. ื•ื•ืขืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื•ื–ืึทืžืขืŸ, ื“ื™ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืžืึทื›ืŸ ืจืึทืฉ ืกืึทืคึผืจืขืฉืึทืŸ ืื•ืŸ ืกื™ื’ื ืึทืœ ื˜ื•ื ื™ื ื’ ื’ืจื™ื ื’ืขืจ ื•ื•ื™ ืืœืฅ.

ืžื™ืจ ื•ื•ืขืœืŸ ืื•ื™ืš ื“ืึทื ืงืขืŸ Mukul Murthy ืื•ืŸ Pranav Anand ืคึฟืึทืจ ื–ื™ื™ืขืจ ืงืึทื ื˜ืจืึทื‘ื™ื•ืฉืึทื ื– ืฆื• ื“ืขื ืึทืจื˜ื™ืงืœ.

ืื ื“ืขืจืข ืืจื˜ื™ืงืœืขืŸ ืื™ืŸ ื“ืขืจ ืกืขืจื™ืข:

ื•ื ื˜ืขืจื˜ื•ืงื  ื–ื™ืš ืื™ืŸ ื“ืขืœื˜ืึท ืœื™ื™ืง: ืึทื ืคึผืึทืงื™ื ื’ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืงืœืึธืฅ

ืฉื™ื™ึทื›ื•ืช ืึทืจื˜ื™ืงืœืขืŸ

ืคึผืจืึธื“ื•ืงืฆื™ืข-ืžื™ื™ื ื•ื ื’ ืžืึทืฉื™ืŸ ืœืขืจื ืขืŸ ืžื™ื˜ ื“ืขืœื˜ืึท ืœื™ื™ืง

ื•ื•ืึธืก ืื™ื– ืึท ื“ืึทื˜ืŸ ืึธื–ืขืจืข?

ื’ืขืคึฟื™ื ืขืŸ ื–ื™ืš ืžืขืจ ื•ื•ืขื’ืŸ ื“ืขื ืงื•ืจืก

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’