python-3.x - 使用 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()
解决方案
在胶水控制台中,运行胶水作业后,在作业列表中会有一个日志/错误日志列。
单击日志,这将带您进入与您的工作相关的 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 日志中 zipcode_dynamicframe.show() 的屏幕截图:
推荐阅读
- android - 在 Android 上通过 Unity3D 运行 Google Maps App,立即开始导航
- php - PHP Mail 显示错误“页面不工作”
- port - 无法在谷歌计算引擎中打开端口
- laravel - Laravel - 表单验证仅在某些字段为空时通过
- unity3d - 如何将世界位置转换为 UV 空间?
- css - 第一个元素应占用空闲空间,下一个元素应具有固定大小
- amazon-web-services - 从 AWS lambda 函数读取本地文件
- powershell - Powershell 中的 _Base 属性是什么以及如何使用它们?
- elasticsearch - Digital Ocean 管理的 Kubernetes 卷处于挂起状态
- node.js - res.write 在 res.write 之后调用 res.end() 之前不发送大数据,但不想结束响应,因为它是 SSE 连接