【发布时间】:2018-09-21 09:26:22
【问题描述】:
我们如何在动态框架或数据框架上使用 PySpark (Python) 在 AWS-Glue 脚本中编写用户定义的函数?
【问题讨论】:
我们如何在动态框架或数据框架上使用 PySpark (Python) 在 AWS-Glue 脚本中编写用户定义的函数?
【问题讨论】:
dynamicframe 不完全支持 UDF,Dataframe API 支持它的方式。你会得到最好的结果是 MAP.apply。
【讨论】:
“AWS Glue 尚不直接支持 Lambda 函数,也称为用户定义函数。但您始终可以将 DynamicFrame 与 Apache Spark DataFrame 相互转换,以利用除了 DynamicFrames 的特殊功能之外的 Spark 功能。” - AWS Glue Medicaid Python samples
AWS Glue Medicaid Python 示例(上面引用/链接)包括一个 Spark UDF 示例:
from pyspark.sql.functions import udf
from pyspark.sql.types import StringType
chop_f = udf(lambda x: x[1:], StringType())
medicare_dataframe = medicare_dataframe.withColumn(
"ACC", chop_f(
medicare_dataframe["average covered charges"])).withColumn(
"ATP", chop_f(
medicare_dataframe["average total payments"])).withColumn(
"AMP", chop_f(
medicare_dataframe["average medicare payments"]))
medicare_dataframe.select(['ACC', 'ATP', 'AMP']).show()
这只是标准的 Spark 代码。如果您希望使用 Spark SQL,请参阅this databricks example。
【讨论】: