Extract Transform Select

Einführung in Spark SQL mit Python

Mark Plutowski

Data Scientist

ETS

Einführung in Spark SQL mit Python

Extract Transform Selec

Einführung in Spark SQL mit Python

Extract, Transform, and Select

  • Extraktion
  • Transformation
  • Selektion
Einführung in Spark SQL mit Python

Eingebaute Funktionen

from pyspark.sql.functions import split, explode
Einführung in Spark SQL mit Python

Die Funktion length

from pyspark.sql.functions import length
df.where(length('sentence') == 0)
Einführung in Spark SQL mit Python

Eigene Funktion erstellen

  • Benutzerdefinierte Funktion
  • UDF
Einführung in Spark SQL mit Python

udf-Funktion importieren

from pyspark.sql.functions import udf
Einführung in Spark SQL mit Python

Boolesche UDF erstellen

print(df)
DataFrame[textdata: string]
from pyspark.sql.functions import udf
from pyspark.sql.types import BooleanType
Einführung in Spark SQL mit Python

Boolesche UDF erstellen

short_udf = udf(lambda x: 
                          True if not x or len(x) < 10 else False, 
                          BooleanType())
df.select(short_udf('textdata')\
  .alias("is short"))\
  .show(3)
+--------+
|is short|
+--------+
|   false|
|    true|
|   false|
+--------+
Einführung in Spark SQL mit Python

Wichtige UDF-Rückgabetypen

from pyspark.sql.types import StringType, IntegerType, FloatType, ArrayType
Einführung in Spark SQL mit Python

Array-UDF erstellen

df3.select('word array', in_udf('word array').alias('without endword'))\
   .show(5, truncate=30)
+-----------------------------+----------------------+
|                   word array|       without endword|
+-----------------------------+----------------------+
|[then, how, many, are, there]|[then, how, many, are]|
|                  [how, many]|                 [how]|
|             [i, donot, know]|            [i, donot]|
|                  [quite, so]|               [quite]|
|   [you, have, not, observed]|      [you, have, not]|
+-----------------------------+----------------------+
Einführung in Spark SQL mit Python

Array-UDF erstellen

from pyspark.sql.types import StringType, ArrayType
# Removes last item in array
in_udf = udf(lambda x: 
    x[0:len(x)-1] if x and len(x) > 1 
    else [], 
    ArrayType(StringType()))
Einführung in Spark SQL mit Python

Sparse-Vector-Format

  1. Indizes
  2. Werte

Beispiel:

  • Array: [1.0, 0.0, 0.0, 3.0]
  • Sparse-Vector: (4, [0, 3], [1.0, 3.0])
Einführung in Spark SQL mit Python

Mit Vektordaten arbeiten

  • hasattr(x, "toArray")
  • x.numNonzeros())
Einführung in Spark SQL mit Python

Lass uns üben!

Einführung in Spark SQL mit Python

Preparing Video For Download...