获取 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?")