获取 AWS Glue 自定义转换中列的值
Get value of column in AWS Glue Custom Transform
我正在 AWS Glue 中处理 ETL。我需要从 base64 中的 table 解码文本 - 我在 Python3.
中的自定义转换中执行此操作
我的代码如下:
def MyTransform (glueContext, dfc) -> DynamicFrameCollection:
import base64
newdf = dfc.select(list(dfc.keys())[0]).toDF()
data = newdf["email"]
data_to_decrypt = base64.b64decode(data)
我有这样的错误:
TypeError: argument should be a bytes-like object or ASCII string, not 'Column'
如何从 Column 对象中获取计划字符串?
我错了,这和我想的完全不一样。
来自 newdf["email"] 的列对象包含这一列的所有行,因此不可能只从中获取一个值。
我最后做的是遍历整行并将它们映射到新值,如下所示:
def map_row(row):
id = row.id
client_key = row.client_key
email = decrypt_jasypt_string(row.email.strip())
phone = decrypt_jasypt_string(row.phone.strip())
created_on = row.created_on
return (id, email, phone, created_on, client_key)
df = dfc.select(list(dfc.keys())[0]).toDF()
rdd2=df.rdd.map(lambda row: map_row(row))
df2=rdd2.toDF(["id","email","phone", "created_on", "client_key"])
dyf_filtered = DynamicFrame.fromDF(df2, glueContext, "does it matter?")
我正在 AWS Glue 中处理 ETL。我需要从 base64 中的 table 解码文本 - 我在 Python3.
中的自定义转换中执行此操作我的代码如下:
def MyTransform (glueContext, dfc) -> DynamicFrameCollection:
import base64
newdf = dfc.select(list(dfc.keys())[0]).toDF()
data = newdf["email"]
data_to_decrypt = base64.b64decode(data)
我有这样的错误:
TypeError: argument should be a bytes-like object or ASCII string, not 'Column'
如何从 Column 对象中获取计划字符串?
我错了,这和我想的完全不一样。
来自 newdf["email"] 的列对象包含这一列的所有行,因此不可能只从中获取一个值。
我最后做的是遍历整行并将它们映射到新值,如下所示:
def map_row(row):
id = row.id
client_key = row.client_key
email = decrypt_jasypt_string(row.email.strip())
phone = decrypt_jasypt_string(row.phone.strip())
created_on = row.created_on
return (id, email, phone, created_on, client_key)
df = dfc.select(list(dfc.keys())[0]).toDF()
rdd2=df.rdd.map(lambda row: map_row(row))
df2=rdd2.toDF(["id","email","phone", "created_on", "client_key"])
dyf_filtered = DynamicFrame.fromDF(df2, glueContext, "does it matter?")