Úvod do PySpark SQL

Někteří začínající programátoři by si nebyli vědomi PySpark SQL. Než projdeme první PySpark SQL, měli bychom mít představu o tom, co je to Spark SQL. Začněme s Spark SQL, jedná se o modul Apache Spark. Spark SQL používal pro práci se strukturovanými daty. PySpark SQL je vyvinut pro podporu Pythonu v programu Spark.

PySpark SQL je spolupráce Pythonu se Sparkem SQL. Používá se hlavně při zpracování strukturovaných a polostrukturovaných dat. Rozhraní API, které poskytuje, umí číst data z velkého počtu zdrojů & Tyto zdroje dat mohou být v různých datových formátech.

Co je PySpark SQL?

Je to nástroj pro podporu pythonu pomocí Spark SQL. Je vyvinut pro podporu Pythonu v programu Spark. Pro správné pochopení PySparku je nutná znalost Pythonu, Big Data & Spark. PySpark SQL si díky svým důležitým funkcím pomalu získává na popularitě v programátorech databází.

PySpark SQL pracuje na distribuovaném systému a je také škálovatelné, proč se proto používá ve vědě o datech. V PySpark SQL Machine je učení zajištěno knihovnou python. Tato knihovna Pythonu se nazývá knihovna strojového učení.

Vlastnosti PySpark SQL

Níže jsou uvedeny některé důležité vlastnosti PySpark SQL:

  • Rychlost: Je mnohem rychlejší než tradiční rámce pro velké zpracování dat, jako je Hadoop.
  • Výkonné ukládání do mezipaměti: PySpark poskytuje jednoduchou programovací vrstvu, která pomáhá při ukládání do mezipaměti, než ukládání do mezipaměti jiných rámců.
  • Real-Time: Výpočet v PySpark SQL probíhá v paměti, proto je real-time.
  • Nasazení: Může být nasazeno prostřednictvím Hadoop nebo vlastního správce clusteru.
  • Polyglot: Podporuje programování v Scala, Java, Python a R.

Používá se ve velkých datech a tam, kde existují velká data, která souvisí s analytikou dat. Je to nejžhavější nástroj na trhu Big Data Analytics.

Hlavní použití PySpark SQL

Níže jsou uvedeny některé sektory, ve kterých se Pyspark používá ve většině:

Elektronický obchod

V odvětví elektronického obchodování přidává PySpark hlavní roli. Používá se při zlepšování dostupnosti uživatelů, poskytování nabídek cíleným zákazníkům, reklamě skutečným zákazníkům. Různá odvětví elektronického obchodování, jako jsou eBay, Alibaba, Flipkart, Amazon atd., Používají toto k získání skutečných dat pro marketingové účely.

Média

Různá odvětví řízení médií, jako jsou Youtube, Netflix, Amazon atd., Používají PySpark ve většině případů ke zpracování velkých dat, aby byla dostupná uživatelům. Toto zpracování dat probíhá v reálném čase pro aplikace na straně serveru.

Bankovnictví

Bankovní sektor je dalším důležitým sektorem, ve kterém je PySpark využíván na velmi velké úrovni. Pomáhá finančnímu sektoru zpracovat transakce v reálném čase pro milion zpracování záznamů, reklamu skutečným zákazníkům, hodnocení úvěrového rizika atd.

Moduly PySpark

Níže jsou uvedeny některé důležité třídy a jejich vlastnosti:

  • pyspark.sql.SparkSession: Tato třída umožňuje programátorům programovat ve Spark s funkcemi DataFrame a SQL. SparkSession slouží k vytvoření DataFrame, registraci DataFrame jako tabulek, tabulek cache, provádění SQL přes tabulky.
  • pyspark.sql.DataFrame: Třída DataFrame hraje důležitou roli v distribuované sbírce dat. Tato data byla seskupena do pojmenovaných sloupců. Spark SQL DataFrame je podobný relační datové tabulce. DataFrame lze vytvořit pomocí metod SQLContext.
  • pyspark.sql.Columns: Pomocí této třídy lze vytvořit instance sloupců v DataFrame.
  • pyspark.sql.Row: Pomocí této třídy lze vytvořit řádek v DataFrame.
  • pyspark.sql.GroupedData: Třída GroupedData poskytuje agregační metody vytvořené groupBy ().
  • pyspark.sql.DataFrameNaFunctions: Tato třída poskytuje funkce pro práci s chybějícími daty.
  • pyspark.sql.DataFrameStatFunctions: Statistické funkce jsou k dispozici s DataFrames Spark SQL. Funkčnost statistických funkcí poskytuje tato třída.
  • pyspark.sql.functions: Mnoho vestavěných funkcí ve Spark je k dispozici pro práci s DataFrames. Některé z vestavěných funkcí jsou uvedeny níže:
Vestavěné metodyVestavěné metody
abs (col)vyhledejte (subst, str, pos = 1)
acos (col)log (arg1, arg2 = None)
add_months (start, měsíce)log10 (col)
ccaCountDistinct (col, res = none)log1p (col)
pole (sloupce)log2 (col)
array_contains (col, value)nižší (col)
asc (col)ltrim (col)
ascii (col)max (col)
asin (col)md5 (col)
opálenístřední (col)
atan2min (col)
průmminuta (col)
base64monotonically_increasing_id ()
zásobníkměsíc (col)
bitwiseNemonths_between (date1, date2)
Přenosnanvl (col1, col2)
Broundnext_day (date, dayOfWeek)
cbrtntile (n)
stropprocent_rank ()
koalesce ((col))posexplode (col)
col (col)pow (col1, col2)
collect_list (col)čtvrtina (col)
collect_set (col)radians (col)
sloupec (col)rand (semeno = Žádné
concat (* cols)randn (semeno = Žádné)
concat_ws (sep, * col)hodnost()
conv (col, fromBase, toBase)regexp_extract (str, pattern, idx)
corr (col1, col2)regexp_replace (str, pattern, náhrada)
cos (col)opakovat (col, n)
cosh (col)reverzní (col)
počet (col)rint (col)
countDistinct (col, * cols)kolo (col, scale = 0)
covar_pop (col1, col2)row_number ()
covar_samp (col1, col2)rpad (col, len, pad)
crc32 (col)rtrim (col)
create_map (* cols)sekunda (col)
cume_dist ()sha1 (col)
dnešní datum()sha2 (col, numBits)
current_timestamp ()shiftLeft (col, numBits)
date_add (start, dny)shiftRight (col, numBits)
date_format (datum, formát)shiftRightUignigned (col, numBits)
date_sub (start, dny)signum (col)
Datediff (konec, start)hřích (col)
dayofmonth (col)sinh (col)
denní rok (col)velikost (col)
dekódovat (col, charset)skewness (col)
stupně (col)sort_array (col, asc = True)
dense_rank ()soundex (col)
desc (col)spark_partition_id ()
enkódovat (col, charset)split (str, pattern)
exp (col)sqrt (col)
explodovat (col)stddev (col)
expm1 (col)stddev_pop (col)
expr (str)stddev_samp (col)
faktoriální (col)struct (* cols)
nejprve (col, ignorenulls = False)podřetězec (str, pos, len)
podlaha (sloupec)substing_index (str, delim, count)
format_number (col, d)součet (col)
format_string (format, * cols)sumDistinct (col)
from_json (col, schema, options = ())tan (col)
from_unixtime (timestamp, format = 'rrrr-MM-dd HH: mm: ss')toDegrees (col)
from_utc_timestamp (timestamp, tz)toRadians (col)
get_json_object (col, path)to_date (col)
největší (* sloupce)to_json (col, options = ())
seskupení (col)to_utc_timestamp (timestamp, tz)
grouping_id (* cols)překládat (srcCol, párování, nahrazování)
hash (* cols)výbava (col)
hex (sloupce)trunc (datum, formát)
hodina (col)udf (f, returnType = StringType)
hypotéka (col1, col2)unbase64 (col)
initcap (col)unhex (col)
input_file_name ()unix_timestamp (timestamp = None, format = 'yyyy-MM-dd HH: mm: ss')
nástroje (str, subst)horní (sloupec)
Isnan (col)var_pop (col)
isnull (col)var_samp (col)
json_tuple (col, * field)variance (col)
kurtóza (col)týdenní rok (col)
zpoždění (col, count = 1, default = None)kdy (podmínka, hodnota)
poslední (col, ignorenulls = False)window (timeColumn, windowDuration, slideDuration = None, startTime = None)
last_day (datum)rok (sloupec)
lead (col, count = 1, default = None)nejméně (* cols), lit (col)
délka (sloupec)levenshtein (vlevo, vpravo)

pyspark.sql.types: Tyto typy tříd používané při převodu datových typů. Pomocí této třídy lze SQL objekt převést na nativní Python objekt.

  • pyspark.sql.streaming: Tato třída zpracovává všechny dotazy, které se provádějí, pokračuje na pozadí. Všechny tyto metody používané v streamování jsou bez státní příslušnosti. Výše uvedené vestavěné funkce jsou k dispozici pro práci s datovými rámečky. Tyto funkce lze použít odkazem na knihovnu funkcí.
  • pyspark.sql.Window: Všechny metody poskytované touto třídou lze použít při definování a práci s okny v DataFrames.

Závěr

Je to jeden z nástrojů používaných v oblasti umělé inteligence a strojového učení. Používá ho stále více společností pro analytiku a strojové učení. Zkušení odborníci v ní budou v nadcházející budoucnosti více žádat.

Doporučené články

Toto je průvodce PySpark SQL. Zde diskutujeme o tom, co je Pyspark SQL, jeho vlastnosti, hlavní použití, moduly a vestavěné metody. Další informace naleznete také v následujících článcích -

  1. Spark DataFrame
  2. Spark Otázky k rozhovoru
  3. SQL Date Function
  4. Klauzula SQL HAVING
  5. Apache Spark Architecture se dvěma implementacemi
  6. Jak používat DISTINCT v Oracle?