Писпарк.скл.ДатаФрамеВритер.савеАсТабле()
Прво ћемо видети како да упишемо постојећи ПиСпарк ДатаФраме у табелу помоћу функције врите.савеАсТабле(). Потребно је име табеле и други опциони параметри као што су режими, партионБи, итд., да би се ДатаФраме уписивао у табелу. Чува се као датотека за паркет.
Синтакса:
датафраме_обј.врите.савеАсТабле(путања/име_табеле,режим,партитионБи,…)
- Табле_наме је име табеле која је креирана из датафраме_обј.
- Можемо додати/преписати податке табеле помоћу параметра моде.
- ПартитионБи узима једну/више колона да креира партиције на основу вредности у овим колонама.
Пример 1:
Направите ПиСпарк ДатаФраме са 5 редова и 4 колоне. Запишите овај оквир података у табелу под називом „Агри_Табле1“.
импорт писпарк
из писпарк.скл импорт СпаркСессион
линукхинт_спарк_апп = СпаркСессион.буилдер.аппНаме( 'Линук савет' ).гетОрЦреате()
# пољопривредни подаци са 5 редова и 5 колона
агри =[{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 2500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'САД' },
{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 3500 , 'Соил_статус' : 'Мокар' ,
'држава' : 'Индија' },
{ 'Тло_Тип' : 'црвено' , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 210 , 'Соил_статус' : 'СУВ' ,
'држава' : 'УК' },
{ 'Тло_Тип' : 'Остало' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 1000 , 'Соил_статус' : 'Мокар' ,
'држава' : 'САД' },
{ 'Тло_Тип' : 'Песак' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'Индија' }]
# креирајте оквир података од горњих података
агри_дф = линукхинт_спарк_апп.цреатеДатаФраме(агри)
агри_дф.схов()
# Упишите горњи ДатаФраме у табелу.
агри_дф.цоалесце( 1 ).врите.савеАсТабле( 'Агри_Табле1' )
Излаз:
Можемо видети да је једна датотека паркета креирана са претходним ПиСпарк подацима.
Пример 2:
Узмите у обзир претходни оквир података и запишите „Агри_Табле2“ у табелу тако што ћете поделити записе на основу вредности у колони „Цоунтри“.
# Упишите горњи ДатаФраме у табелу са параметром партитионБиагри_дф.врите.савеАсТабле( 'Агри_Табле2' ,партитионБи=[ 'држава' ])
Излаз:
У колони „Земља“ постоје три јединствене вредности – „Индија“, „УК“ и „САД“. Дакле, створене су три партиције. Свака партиција садржи датотеке паркета.
Писпарк.скл.ДатаФрамеРеадер.табле()
Хајде да учитамо табелу у ПиСпарк ДатаФраме помоћу функције спарк.реад.табле(). Потребан је само један параметар који је име путање/табеле. Директно учитава табелу у ПиСпарк ДатаФраме и све СКЛ функције које су примењене на ПиСпарк ДатаФраме такође се могу применити на овај учитани ДатаФраме.
Синтакса:
спарк_апп.реад.табле(патх/’Табле_наме’)У овом сценарију користимо претходну табелу која је креирана из ПиСпарк ДатаФраме-а. Уверите се да морате да примените претходне исечке кода сценарија у свом окружењу.
Пример:
Учитајте табелу „Агри_Табле1“ у ДатаФраме под називом „лоадед_дата“.
лоадед_дата = линукхинт_спарк_апп.реад.табле( 'Агри_Табле1' )лоадед_дата.схов()
Излаз:
Можемо видети да је табела учитана у ПиСпарк ДатаФраме.
Извршавање СКЛ упита
Сада извршавамо неке СКЛ упите на учитаном ДатаФраме-у користећи функцију спарк.скл().
# Користите команду СЕЛЕЦТ да прикажете све колоне из горње табеле.линукхинт_спарк_апп.скл( „СЕЛЕЦТ * фром Агри_Табле1“ ).Прикажи()
# Где клаузула
линукхинт_спарк_апп.скл( 'СЕЛЕЦТ * фром Агри_Табле1 ВХЕРЕ Соил_статус='Дри'' ).Прикажи()
линукхинт_спарк_апп.скл( „СЕЛЕЦТ * фром Агри_Табле1 ВХЕРЕ Ацрес > 2000“ ).Прикажи()
Излаз:
- Први упит приказује све колоне и записе из ДатаФраме-а.
- Други упит приказује записе на основу колоне „Соил_статус“. Постоје само три записа са елементом „Суво“.
- Последњи упит враћа два записа са „Ацрес“ који су већи од 2000.
Писпарк.скл.ДатаФрамеВритер.инсертИнто()
Користећи функцију инсертИнто(), можемо додати ДатаФраме у постојећу табелу. Ову функцију можемо користити заједно са селецтЕкпр() да дефинишемо називе колона и затим је убацимо у табелу. Ова функција такође узима таблеНаме као параметар.
Синтакса:
ДатаФраме_обј.врите.инсертИнто(’Име_табеле’)У овом сценарију користимо претходну табелу која је креирана из ПиСпарк ДатаФраме-а. Уверите се да морате да примените претходне исечке кода сценарија у свом окружењу.
Пример:
Направите нови ДатаФраме са два записа и уметните их у табелу „Агри_Табле1“.
импорт писпаркиз писпарк.скл импорт СпаркСессион
линукхинт_спарк_апп = СпаркСессион.буилдер.аппНаме( 'Линук савет' ).гетОрЦреате()
# пољопривредни подаци са 2 реда
агри =[{ 'Тло_Тип' : 'Песак' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 2500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'САД' },
{ 'Тло_Тип' : 'Песак' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 1200 , 'Соил_статус' : 'Мокар' ,
'држава' : 'Јапан' }]
# креирајте оквир података од горњих података
агри_дф2 = линукхинт_спарк_апп.цреатеДатаФраме(агри)
агри_дф2.схов()
# врите.инсертИнто()
агри_дф2.селецтЕкпр( 'Ацре' , 'земља' , „Доступност_наводњавања“ , 'Тло_Тип' ,
'Соил_статус' ).врите.инсертИнто( 'Агри_Табле1' )
# Прикажи коначну Агри_Табелу1
линукхинт_спарк_апп.скл( „СЕЛЕЦТ * фром Агри_Табле1“ ).Прикажи()
Излаз:
Сада, укупан број редова који су присутни у ДатаФраме-у је 7.
Закључак
Сада разумете како да запишете ПиСпарк ДатаФраме у табелу помоћу функције врите.савеАсТабле(). Узима име табеле и друге опционе параметре. Затим смо ову табелу учитали у ПиСпарк ДатаФраме помоћу функције спарк.реад.табле(). Потребан је само један параметар који је име путање/табеле. Ако желите да додате нови ДатаФраме у постојећу табелу, користите функцију инсертИнто().