忍者ブログ

【pyspark】DataFrameのレコード毎に処理を行う。UDF(User Defined Function)

2020年09月21日 00時10分07秒
DataFrameのレコード毎に特定の処理を行いたい場合、UDF(User Defined Function)の例。


from pyspark.sql.functions import udf
from pyspark.sql import SparkSession
from pyspark.sql.functions import struct, lit
from pyspark.sql.types import StringType
def f(row):
    str = f"{row['name']}は{row['age']}歳です"
    return str
udf_func = udf(f)
spark = SparkSession.builder.getOrCreate()
d = [
    {'name': 'Tanaka', 'age': 10},
    {'name': 'Suzuki', 'age': 15},
    {'name': 'Satou', 'age': 19}
]
df = spark.createDataFrame(d)
result_df = df.withColumn('udf_result', udf_func(struct(*df.schema.names)))
result_df.show(truncate=False)
+---+------+-------------------+
|age|name  |udf_result          |
+---+------+-------------------+
|10 |Tanaka|Tanakaは10歳です|
|15 |Suzuki|Suzukiは15歳です |
|19 |Satou |Satouは19歳です   |
+---+------+-------------------+



PR
Comment
No title
А здесь mypornopizza.com ты найдешь секс видео
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字