ПиСпарк чита ЈСОН()

Pispark Cita Json



Док радите са ПиСпарк ДатаФраме-ом, он мора да буде сачуван у ПиСпарк ДатаФраме-у ако желите да обрадите ЈСОН податке. Након складиштења у ДатаФраме-у, можемо применити различите операције и методе на податке. Такође, има толико предности ако конвертујемо ЈСОН у ПиСпарк ДатаФраме јер је једноставан и можемо да трансформишемо/партиционишемо податке на једноставнији начин.

Тема садржаја:

Читање ЈСОН-а у ПиСпарк ДатаФраме помоћу Пандас.реад_јсон()







Читање ЈСОН-а у ПиСпарк ДатаФраме помоћу Спарк.реад.јсон()



Читање ЈСОН-а у ПиСпарк ДатаФраме помоћу ПиСпарк СКЛ-а



У овом водичу ћемо погледати како да прочитамо ЈСОН у ПиСпарк ДатаФраме користећи пандас.реад_јсон(), спарк.реад.јсон() и спарк.скл. У свим сценаријима, размотрићемо различите примере узимајући у обзир различите ЈСОН формате.





Инсталирајте библиотеку ПиСпарк пре имплементације следећих примера.

пип инсталл писпарк

Након успешне инсталације, можете видети излаз на следећи начин:



Читање ЈСОН-а у ПиСпарк ДатаФраме помоћу Пандас.реад_јсон()

У ПиСпарк-у, метода цреатеДатаФраме() се користи за директно креирање ДатаФраме-а. Овде само треба да проследимо ЈСОН датотеку/путњу до ЈСОН датотеке кроз метод пандас.реад_јсон(). Ова метода реад_јсон() узима име датотеке/путања која је доступна у Пандас модулу. Због тога је неопходно увести и користити Пандас модул.

Синтакса:

спарк_апп.цреатеДатаФраме(пандас.реад_јсон( 'име_датотеке.јсон' ))

Пример:

Хајде да направимо ЈСОН датотеку под називом „студент_скилл.јсон“ која садржи 2 записа. Овде су кључеви/колоне „Ученик 1” и „Ученик 2”. Редови су име, старост, вештина1 и вештина2.

импорт писпарк

увоз панде

из писпарк.скл импорт СпаркСессион

линукхинт_спарк_апп = СпаркСессион.буилдер.аппНаме( 'Линук савет' ).гетОрЦреате()

# Коришћење пандас.реад_јсон()

кандидат_скиллс = линукхинт_спарк_апп.цреатеДатаФраме(пандас.реад_јсон( 'студент_скилл.јсон' ))

кандидат_скиллс.схов()

Излаз:

Можемо видети да су ЈСОН подаци конвертовани у ПиСпарк ДатаФраме са наведеним колонама и редовима.

2. Читање ЈСОН-а у ПиСпарк ДатаФраме помоћу Спарк.реад.јсон()

Реад.јсон() је метод који је сличан реад_јсон() у Пандас-у. Овде реад.јсон() узима путању до ЈСОН или директно до ЈСОН датотеке и директно је учитава у ПиСпарк ДатаФраме. У овом сценарију нема потребе да користите метод цреатеДатаФраме(). Ако желите да читате више ЈСОН датотека истовремено, морамо да проследимо листу имена ЈСОН датотека кроз листу која је одвојена зарезом. Сви ЈСОН записи се чувају у једном ДатаФраме-у.

Синтакса:

Једна датотека - спарк_апп.реад.јсон( 'име_датотеке.јсон' )

Више датотека - спарк_апп.реад.јсон([ 'филе1.јсон' , 'филе2.јсон' ,...])

Сценарио 1: Читајте ЈСОН са једним редом

Ако је ваша ЈСОН датотека у форматима рецорд1, рецорд2, рецорд3... (један ред), можемо је назвати као ЈСОН са појединачним редовима. Спарк обрађује ове записе и складишти их у ПиСпарк ДатаФраме као редове. Сваки запис је ред у ПиСпарк ДатаФраме-у.

Хајде да направимо ЈСОН датотеку под називом „цандидате_скиллс.јсон“ која садржи 3 записа. Прочитајте овај ЈСОН у ПиСпарк ДатаФраме.

импорт писпарк

из писпарк.скл импорт СпаркСессион

линукхинт_спарк_апп = СпаркСессион.буилдер.аппНаме( 'Линук савет' ).гетОрЦреате()

# Прочитајте кандидат_скиллс.јсон у ПиСпарк ДатаФраме

кандидат_скиллс = линукхинт_спарк_апп.реад.јсон( 'цандидате_скиллс.јсон' )

кандидат_скиллс.схов()

Излаз:

Можемо видети да су ЈСОН подаци конвертовани у ПиСпарк ДатаФраме са наведеним записима и именима колона.

Сценарио 2: Прочитајте ЈСОН са више редова

Ако ваша ЈСОН датотека има више редова, потребно је да користите метод реад.оптион().јсон() да бисте проследили вишелинијски параметар који мора бити постављен на труе. Ово нам омогућава да учитамо ЈСОН са више линија у ПиСпарк ДатаФраме.

реад.оптион( 'вишелинијски' , 'истина' ).јсон( 'име_датотеке.јсон' )

Хајде да направимо ЈСОН датотеку под називом „мулти.јсон“ која садржи 3 записа. Прочитајте овај ЈСОН у ПиСпарк ДатаФраме.

импорт писпарк

из писпарк.скл импорт СпаркСессион

линукхинт_спарк_апп = СпаркСессион.буилдер.аппНаме( 'Линук савет' ).гетОрЦреате()

# Прочитајте мулти.јсон (који има више линија) у ПиСпарк ДатаФраме

кандидат_скиллс = линукхинт_спарк_апп.реад.оптион( 'вишелинијски' , 'истина' ).јсон( 'мулти.јсон' )

кандидат_скиллс.схов()

Излаз:

Сценарио 3: Прочитајте више ЈСОН-а

Већ смо разговарали у почетној фази овог упутства о више ЈСОН датотека. Ако желите да читате више ЈСОН датотека истовремено и да их складиштите у једном ПиСпарк ДатаФраме-у, морамо да проследимо листу имена датотека методи реад.јсон().

Хајде да направимо две ЈСОН датотеке под називом „цандидате_скиллс.јсон“ и „цандидате_скиллс2.јсон“ и учитамо их у ПиСпарк ДатаФраме.

Датотека „цандидате_скиллс.јсон“ садржи три записа.

Датотека „цандидате_скилл2.јсон“ садржи само један запис.

импорт писпарк

из писпарк.скл импорт СпаркСессион

линукхинт_спарк_апп = СпаркСессион.буилдер.аппНаме( 'Линук савет' ).гетОрЦреате()

# Читајте датотеке кандидата_скиллс и кандидата_скиллс2 одједном у ПиСпарк ДатаФраме

кандидат_скиллс = линукхинт_спарк_апп.реад.јсон([ 'цандидате_скиллс.јсон' , 'цандидате_скиллс2.јсон' ])

кандидат_скиллс.схов()

Излаз:

Коначно, ДатаФраме садржи четири записа. Прва три записа припадају првом ЈСОН-у, а последњи записи припадају другом ЈСОН-у.

Читање ЈСОН-а у ПиСпарк ДатаФраме помоћу Спарк.реад.јсон()

Реад.јсон() је метод који је сличан реад_јсон() у Пандас-у. Овде реад.јсон() узима путању до ЈСОН или директно до ЈСОН датотеке и учитава је директно у ПиСпарк ДатаФраме. У овом сценарију нема потребе да користите метод цреатеДатаФраме(). Ако желите да читате више ЈСОН датотека истовремено, морамо да проследимо листу имена ЈСОН датотека кроз листу која је одвојена зарезом. Сви ЈСОН записи се чувају у једном ДатаФраме-у.

Синтакса:

Једна датотека - спарк_апп.реад.јсон( 'име_датотеке.јсон' )

Више датотека - спарк_апп.реад.јсон([ 'филе1.јсон' , 'филе2.јсон' ,...])

Сценарио 1: Читајте ЈСОН са једним редом

Ако је ваша ЈСОН датотека у формату рецорд1, рецорд2, рецорд3... (један ред), можемо је назвати као ЈСОН са појединачним редовима. Спарк обрађује ове записе и складишти их у ПиСпарк ДатаФраме као редове. Сваки запис је ред у ПиСпарк ДатаФраме-у.

Хајде да направимо ЈСОН датотеку под називом „цандидате_скиллс.јсон“ која садржи 3 записа. Прочитајте овај ЈСОН у ПиСпарк ДатаФраме.

импорт писпарк

из писпарк.скл импорт СпаркСессион

линукхинт_спарк_апп = СпаркСессион.буилдер.аппНаме( 'Линук савет' ).гетОрЦреате()

# Прочитајте кандидат_скиллс.јсон у ПиСпарк ДатаФраме

кандидат_скиллс = линукхинт_спарк_апп.реад.јсон( 'цандидате_скиллс.јсон' )

кандидат_скиллс.схов()

Излаз:

Можемо видети да су ЈСОН подаци конвертовани у ПиСпарк ДатаФраме са наведеним записима и именима колона.

Читање ЈСОН-а у ПиСпарк ДатаФраме помоћу ПиСпарк СКЛ-а

Може бити могуће креирати привремени приказ наших ЈСОН података користећи ПиСпарк СКЛ. Директно можемо да обезбедимо ЈСОН у тренутку креирања привременог приказа. Погледајте следећу синтаксу. Након тога, можемо користити команду СЕЛЕЦТ да прикажемо ПиСпарк ДатаФраме.

Синтакса:

спарк_апп.скл( „НАПРАВИТЕ ПРИВРЕМЕНИ ПРИКАЗ ВИЕВ_НАМЕ КОРИШЋЕЊЕМ јсон ОПЦИЈА (путања „име_датотеке.јсон“)“ )

Овде је „ВИЕВ_НАМЕ“ приказ ЈСОН података, а „филе_наме“ је назив ЈСОН датотеке.

Пример 1:

Размотрите ЈСОН датотеку која се користи у претходним примерима – „цандидате_скиллс.јсон“. Изаберите све редове из ДатаФраме-а користећи СЕЛЕЦТ са „*“ оператором. Овде * бира све колоне из ПиСпарк ДатаФраме-а.

импорт писпарк

увоз панде

из писпарк.скл импорт СпаркСессион

линукхинт_спарк_апп = СпаркСессион.буилдер.аппНаме( 'Линук савет' ).гетОрЦреате()

# Коришћење спарк.скл за креирање ВИЕВ из ЈСОН-а

кандидат_скиллс = линукхинт_спарк_апп.скл( „КРЕИРАЈТЕ ПРИВРЕМЕНИ ПРИКАЗ Цандидате_дата УПОТРЕБА јсон ОПЦИЈА (путања 'цандидате_скиллс.јсон')' )

# Користите СЕЛЕЦТ упит да изаберете све записе из Цандидате_дата.

линукхинт_спарк_апп.скл( „СЕЛЕЦТ * фром Цандидате_дата“ ).Прикажи()

Излаз:

Укупан број записа у ПиСпарк ДатаФраме-у (читаном из ЈСОН-а) је 3.

Пример 2:

Сада филтрирајте записе у ПиСпарк ДатаФраме-у на основу колоне старости. Користите оператор „веће од“ за узраст да бисте добили редове са узрастом већим од 22 године.

# Користите СЕЛЕЦТ упит да изаберете записе са годинама > 22.

линукхинт_спарк_апп.скл( „СЕЛЕЦТ * фром Цандидате_дата где је старост>22“ ).Прикажи()

Излаз:

У ПиСпарк ДатаФраме-у постоји само један запис са старошћу већом од 22 године.

Закључак

Научили смо три различита начина читања ЈСОН-а у ПиСпарк ДатаФраме. Прво смо научили како да користимо метод реад_јсон() који је доступан у Пандас модулу за читање ЈСОН-а у ПиСпарк ДатаФраме. Затим смо научили како да читамо ЈСОН датотеке са једним/више линија користећи метод спарк.реад.јсон() са опцијом(). Да бисмо читали више ЈСОН датотека у исто време, овом методу морамо да проследимо листу имена датотека. Користећи ПиСпарк СКЛ, ЈСОН датотека се чита у привремени приказ и ДатаФраме се приказује помоћу СЕЛЕЦТ упита.