ПиСпарк СелецтЕкпр()

Pispark Selectekpr



Користећи функцију селецтЕкпр() у ПиСпарк-у, можемо директно да проценимо израз без креирања ТАБЛЕ или ПРИКАЗА. Ова функција је доступна у модулу писпарк.скл.ДатаФраме који је сличан методи селецт(). Са селецтЕкпр() можемо приказати колоне, применити функције на колоне, проценити изразе, извршити операције агрегације, итд. Такође је могуће проценити/навести више колона у исто време.

Писпарк.скл.ДатаФраме.селецтЕкпр()

Селецтекпр() функција узима колоне/скуп израза и враћа ДатаФраме на основу наведених израза/колона. У овој функцији може се навести више израза који су одвојени зарезом. Да бисмо приказали ДатаФраме, можемо користити функције схов()/цоллецт().

Синтакса:







писпарк_ДатаФраме_објецт.селецтЕкпр(“Колоне”/”Изрази”)

Овде је писпарк_ДатаФраме_објецт улазни ПиСпарк ДатаФраме.



Сценарио 1: Изаберите колоне

У овом сценарију, видећемо како да изаберете одређене колоне из ПиСпарк ДатаФраме-а користећи функцију селецтЕкпр().



Израз који се користи је „постојећа_колона као ново_име“. Овде је постојећи_колона име колоне које је присутно у ДатаФраме-у и приказује се као ново_наме (Алиасинг).





Пример:

Направите ПиСпарк ДатаФраме под називом „агри_дф“ са 5 редова и колона. Добијте колоне „Соил_статус“ и „Соил_Типе“ као „СТАТУС“ и „ТИПЕ“.

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

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

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

# пољопривредни подаци са 5 редова и 5 колона

агри =[{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 2500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'САД' },

{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 3500 , 'Соил_статус' : 'Мокар' ,
'држава' : 'Индија' },

{ 'Тло_Тип' : Ниједан , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 210 , 'Соил_статус' : 'СУВ' ,
'држава' : 'УК' },

{ 'Тло_Тип' : 'Остало' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 1000 , 'Соил_статус' : 'Мокар' ,
'држава' : 'САД' },

{ 'Тло_Тип' : 'Песак' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'Индија' }]



# креирајте оквир података од горњих података

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

# Добијте Соил_статус и Соил_Типе као 'СТАТУС' и 'ТИПЕ'.

агри_дф.селецтЕкпр( „Соил_статус као СТАТУС“ , „Тло_Тип као ТИПЕ“ ).Прикажи()

Излаз:



Сценарио 2: Одређивање условних израза

У овом сценарију, видећемо како да проценимо услове унутар функције селецтЕкпр().

Израз који се користи је „вредност оператора постојеће_колоне“. Овде је постојећи_колона име колоне које је присутно у ДатаФраме-у и ми упоређујемо сваку вредност у овој колони са стрингом/вредношћу.

Пример 1:

Проверите да ли је земља „САД“ или не. Овде се користи оператор једнакости (=).

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

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

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

# пољопривредни подаци са 5 редова и 5 колона

агри =[{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 2500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'САД' },

{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 3500 , 'Соил_статус' : 'Мокар' ,
'држава' : 'Индија' },

{ 'Тло_Тип' : Ниједан , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 210 , 'Соил_статус' : 'СУВ' ,
'држава' : 'УК' },

{ 'Тло_Тип' : 'Остало' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 1000 , 'Соил_статус' : 'Мокар' ,
'држава' : 'САД' },

{ 'Тло_Тип' : 'Песак' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'Индија' }]



# креирајте оквир података од горњих података

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

# Проверите да ли је земља 'САД' или не.

агри_дф.селецтЕкпр( „Земља = „САД““ ).Прикажи()

Излаз:

Пример 2:

Проверите да ли је Соил_Типе НУЛЛ или не. Кључна реч НУЛЛ проверава да ли је вредност НУЛЛ или не. Ако је нулл, враћа се труе. У супротном, враћа се фалсе. Коначни израз је „Тло_Тип ЈЕ НУЛЛ“

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

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

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

# пољопривредни подаци са 5 редова и 5 колона

агри =[{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 2500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'САД' },

{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 3500 , 'Соил_статус' : 'Мокар' ,
'држава' : 'Индија' },

{ 'Тло_Тип' : Ниједан , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 210 , 'Соил_статус' : 'СУВ' ,
'држава' : 'УК' },

{ 'Тло_Тип' : 'Остало' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 1000 , 'Соил_статус' : 'Мокар' ,
'држава' : 'САД' },

{ 'Тло_Тип' : 'Песак' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'Индија' }]



# креирајте оквир података од горњих података

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

# Проверите да ли је Соил_Типе НУЛЛ или не.

агри_дф.селецтЕкпр( „Тло_Тип ЈЕ НУЛЛ“ ).Прикажи()

Излаз:

Сценарио 3: Вредновање израза

У овом сценарију, видећемо како да наведемо математичке изразе. Израз који се користи је „математички_израз постојећег_колона“.

Пример:

  1. Прикажите стварну колону „Ацре“.
  2. Додајте 100 у колону „Ацре“.
  3. Одузмите 100 од колоне „Ацре“.
  4. Помножите 100 са колоном „Ацре“.
  5. Поделите колону „Акри“ са 100.
импорт писпарк

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

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

# пољопривредни подаци са 5 редова и 5 колона

агри =[{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 2500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'САД' },

{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 3500 , 'Соил_статус' : 'Мокар' ,
'држава' : 'Индија' },

{ 'Тло_Тип' : Ниједан , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 210 , 'Соил_статус' : 'СУВ' ,
'држава' : 'УК' },

{ 'Тло_Тип' : 'Остало' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 1000 , 'Соил_статус' : 'Мокар' ,
'држава' : 'САД' },

{ 'Тло_Тип' : 'Песак' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'Индија' }]



# креирајте оквир података од горњих података

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

# Напишите 4 израза за одузимање, сабирање, дељење и множење колоне Ацрес.

агри_дф.селецтЕкпр( 'Ацре' , 'Ацре - 100' , 'Ацре * 100' , 'Ацре + 100' , 'Ацре / 100' ).Прикажи()

Излаз:

Сценарио 4: Примена агрегатних функција

СУМ(име_колоне) – Процењује укупну вредност у наведеној колони.

МЕАН(име_колоне) – Процењује просечну вредност у наведеној колони.

МИН(име_колоне) – Враћа минимални елемент међу свим елементима у наведеној колони.

МАКС(име_колоне) – Враћа максимални елемент међу свим елементима у наведеној колони.

Пример:

  1. Пронађите укупан, просек, број, минимум и максималне елементе „Ацре“.
  2. Пронађите минималне и максималне елементе у колони „Соил_статус“.
импорт писпарк

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

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

# пољопривредни подаци са 5 редова и 5 колона

агри =[{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 2500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'САД' },

{ 'Тло_Тип' : 'Црн' , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 3500 , 'Соил_статус' : 'Мокар' ,
'држава' : 'Индија' },

{ 'Тло_Тип' : Ниједан , 'Иригатион_аваилабилити' : 'Да' , 'Ацре' : 210 , 'Соил_статус' : 'СУВ' ,
'држава' : 'УК' },

{ 'Тло_Тип' : 'Остало' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 1000 , 'Соил_статус' : 'Мокар' ,
'држава' : 'САД' },

{ 'Тло_Тип' : 'Песак' , 'Иригатион_аваилабилити' : 'Не' , 'Ацре' : 500 , 'Соил_статус' : 'СУВ' ,
'држава' : 'Индија' }]



# креирајте оквир података од горњих података

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

# Агрегатне операције

агри_дф.селецтЕкпр( „СУМ (јутара)“ , „МЕАН (Ацре)“ , „ЦОУНТ(јутара)“ , „АВГ (јутара)“ , „МИН (јутара)“ ,
„МАКС (јутара)“ ).Прикажи()

агри_дф.селецтЕкпр( „МИН(статус_тла)“ , „МАКС(статус_тла)“ ).Прикажи()

Излаз:

Закључак

Разговарали смо о функцији селецтЕкпр() која узима колоне/скупове израза и враћа ДатаФраме на основу наведених израза/колона. Као део овога, научили смо четири главна сценарија у којима је селецтЕкпр() применљив. У овој функцији може се навести више израза који су одвојени зарезом. Нема потребе да креирате ПРИВРЕМЕНИ ПРИКАЗ да бисте користили функцију селецтЕкпр().