Спарк СКЛ Датафраме

Оквир података сличан РДД-у је апстракција за структуриране податке у Спарк СКЛ библиотеци. То је дистрибуирана збирка података која се може сматрати табелом у релацијској бази података са приложеном шемом. Може се дефинисати и као збирка именованих колона. Спарк СКЛ је једна од библиотека доступних у Спарк групи која садржи информације о структури и израчунавању који се изводе на подацима. Ове додатне информације користе се за оптимизацију. Датафраме садржи предности РДД-а заједно са техникама оптимизације и овај АПИ је доступан у Питхон, Р, Сцала и Јава.

Различити извори који стварају оквир података су:

  • Постојећи РДД
  • Структуриране датотеке података и базе података
  • Стол за кошнице

Потреба података

Искривена заједница одувек је покушавала да унесе структуру података, где су СКЛ-датафрамери искра кораци предузети у том смеру. Почетни АПИ искре, РДД је за неструктуриране податке где су израчунавања и подаци непрозирни. Стога је постојао захтев да се направи АПИ који је у стању да пружи додатне предности оптимизације. Испод је неколико захтева који су били основа података-

  • Обрађује структуриране и полу-податке
  • Вишеструки извори података
  • Интеграција са више програмских језика
  • Број операција које се могу извести на подацима као што су селецт & филтер.

Како створити Спарк СКЛ Датафраме?

Пре него што схватите начине креирања податковног оквира важно је разумети још један концепт помоћу којег искре апликације стварају датафраме из различитих извора. Овај концепт је познат под називом спарксессион и представља улазну тачку за све функције искре. Раније смо морали да креирамо спаркЦонф, спаркЦонтект или склЦонтект појединачно, али са спарксессионом, сви су инкапсулирани у оквиру једне сесије, где искрица делује као објект за спинезију.

import org.apache.spark.sql.SparkSession
val spark = SparkSession
.builder()
.appName("SampleWork")
.config("config.option", "value")
.getOrCreate()

Начини креирања податковног оквира

  1. Из постојећег РДД-а

Постоје два начина на који се може креирати Датафраме путем РДД-а. Један начин је употреба рефлексије која аутоматски закључује шему података, а други приступ је креирање програмске схеме и затим примјена на РДД.

  • Навођењем шеме

Једноставан начин претварања РДД-а у Датафраме је када садржи класе случаја због Спарк-овог СКЛ интерфејса. Аргументи прослеђени класе случаја преузимају се помоћу рефлексије и она постаје назив ступаца табеле. Секвенце и низови се такође могу дефинисати у класама предмета. РДД који ће бити креиран помоћу класе случаја може се имплицитно претворити у Датафраме помоћу методе тоДФ ().

val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
case class Transport(AutoName: String, year: Int)
val Vehicle = sc.textFile("//path//").map(_.split(", ")).map(p => Transport(p(0), p(1)).toDF()

Возило података креира се и може се регистровати као табела против које се могу извршити скл изрази.

  • Програмским одређивањем шеме

Може бити случајева за које претходно нисмо упознати са схемом или сценаријима где класе случајева не могу примити више од 22 поља. У таквим условима користимо приступ програмског креирања шеме. Прво, РДД редака се креира од оригиналног РДД-а, тј. Претвара рдд објект из рдд (т) у рдд (ред). Затим креирајте шему помоћу објеката СтруцтТипе (Табела) и СтруцтФиелд (поље). Ова шема се примењује на РДД редака помоћу методе цреатеДатаФраме која подсећа на структуру рдд (ред) креирану раније.

val Vehicle = sc.textFile("//path")
import org.apache.spark.sql._
val schema = StructType(Array(StructField("AutoName", StringType, true), StructField("Year", IntegerType, true)))
scala> val rowRDD = vehicle.map(_.split(", ")).map(p => org.apache.spark.sql.Row(p(0), p(1).toInt))
val vehicleSchemaRDD = sqlContext.applySchema(rowRDD, schema)

  1. Кроз изворе података

Спарк омогућава креирање оквира оквира података кроз више извора као што су кошница, јсон, паркет, цсв и текстуалне датотеке које се такође могу користити за креирање оквира оквира података.

Val file=sqlContext.read.json(“path to the json file”)
Val file=sqlContext.read.csv(“path to the json file”)
Val file=sqlContext.read.text(“path to the json file”)
val hiveData = new org.apache.spark.sql.hive.HiveContext(sc)
val hiveDF = hiveData.sql(“select * from tablename”)

Операције податакаФраме

Како се подаци похрањују у табеларном формату заједно са схемом, постоји низ операција које се могу извести на оквирима података. Омогућује више операција које се могу извести на подацима у оквирима података.

Датотека за разматрање је оквир података који је креиран из ЦСВ датотеке са две колоне - ФуллНаме и АгеПерПА

  1. принтСцхема () - Да бисте погледали структуру шеме

file.printSchema()
// |-- AgePerPA: long (nullable = true)
// |-- FullName: string (nullable = true)

  1. селецт- Сличан одабиру изјаву у СКЛ-у, приказује податке као што је споменуто у селецт статемент.

file.select("FullName").show()
// +-------+
// | name|
// +-------+
// |Sam|
// |Jodi|
// | Bala|
// +-------+

  1. Филтер - Да бисте прегледали филтриране податке из оквира података. Услов споменут у команди

file.filter($"AgePerPA" > 18).show()

  1. ГроупБи - Да бисте груписали вредности

file.groupBy("AgePerPA").count().show()

  1. схов () - да бисте приказали садржај оквира података

file.show()

Ограничења

Иако помоћу датафрамес-а можете ухватити скл грешку у синтакси у самом времену компилације, он није у стању да обради било коју грешку у вези са анализом до извршавања. На пример, ако се у коду наводи референца на непостојеће име колоне, неће се приметити док рунтиме. То би довело до губитка времена програмера и трошкова пројекта.

Закључак - Спарк СКЛ Датафраме

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

Препоручени чланци

Ово је водич за Спарк СКЛ Датафраме. Овдје разговарамо о начинима креирања податковног оквира с операцијама и ограничењима ДатаФраме. Такође можете погледати следећи чланак да бисте сазнали више -

  1. Команде искричавих граната
  2. Курсори у СКЛ-у
  3. СКЛ ограничења
  4. База података у СКЛ-у
  5. Врсте придруживања у Спарк СКЛ-у (примери)
  6. Водич до листе команди Уник Схелл-а

Категорија: