首页 > 解决方案 > 使用 pyspark aws 胶水时显示 DataFrame

问题描述

如何使用 aws 胶水的作业 etl 显示 DataFrame?

我在下面尝试了这段代码,但没有显示任何内容。

df.show()

代码

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "flux-test", table_name = "tab1", transformation_ctx = "datasource0")
sourcedf = ApplyMapping.apply(frame = datasource0, mappings = [("id", "long", "id", "long"),("Rd.Id_Releve", "string", "Rd.Id_R", "string")])
 sourcedf = sourcedf.toDF()
 data = []
 schema = StructType(
[
    StructField('PM',
        StructType([
            StructField('Pf', StringType(),True),
            StructField('Rd', StringType(),True)
    ])
    ),
    ])
 cibledf = sqlCtx.createDataFrame(data, schema)
 cibledf = sqlCtx.createDataFrame(sourcedf.rdd.map(lambda x:    Row(PM=Row(Pf=str(x.id_prm), Rd=None ))), schema)
 print(cibledf.show())
 job.commit()

标签: python-3.xapache-sparkpysparkaws-glue

解决方案


在胶水控制台中,运行胶水作业后,在作业列表中会有一个日志/错误日志列。

单击日志,这将带您进入与您的工作相关的 cloudwatch 日志。浏览打印语句。

也请在这里检查:将动态帧转换为数据帧并执行 show()

添加了工作/测试代码示例

代码示例:

zipcode_dynamicframe = glueContext.create_dynamic_frame.from_catalog(
       database = "customer_db",
       table_name = "zipcode_master")
zipcode_dynamicframe.printSchema()
zipcode_dynamicframe.toDF().show(10)

cloudwatch 日志中 z​​ipcode_dynamicframe.show() 的屏幕截图:

在此处输入图像描述


推荐阅读