如何在 AWS-Glue 脚本中编写用户定义的函数?
Posted
技术标签:
【中文标题】如何在 AWS-Glue 脚本中编写用户定义的函数?【英文标题】:How to write user-defined function in AWS-Glue Script? 【发布时间】:2018-09-21 09:26:22 【问题描述】:我们如何在动态框架或数据框架上使用 PySpark (Python) 在 AWS-Glue 脚本中编写用户定义的函数?
【问题讨论】:
【参考方案1】:dynamicframe 不完全支持 UDF,Dataframe API 支持它的方式。你会得到最好的结果是 MAP.apply。
【讨论】:
【参考方案2】:“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。
【讨论】:
以上是关于如何在 AWS-Glue 脚本中编写用户定义的函数?的主要内容,如果未能解决你的问题,请参考以下文章
如何从matlab中用户定义的函数返回一个值,该函数的回调在uicontrol中指定