AWS胶接E

2024-09-28 05:29:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我们在s3bucket(CSV)中有数据(表),需要应用连接转换并将结果存储在S3中。 表的连接是成功的,但是在S3中得到的列列表是混乱的,输出文件中没有维护顺序。 输出文件还包含额外的引号(“)和点(.)

仅应用映射时,顺序不变,生成正确的输出而不会造成混乱。在

脚本是用python或Scala编写的。在

脚本:

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job


args = getResolvedOptions(sys.argv, ['JOB_NAME'])

sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args['JOB_NAME'], args)

datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "testdb", table_name = "table1", transformation_ctx = "datasource0")

datasource1 = glueContext.create_dynamic_frame.from_catalog(database = "testdb", table_name = "reftable", transformation_ctx = "datasource1")

datasource2 =datasource1.join(["aaaaaaaaaid"],["aaaaaaaaaid"],datasource0,transformation_ctx="join") 


datasink2 = glueContext.write_dynamic_frame.from_options(frame = datasource2, connection_type = "s3", connection_options = {"path": "s3://testing/Output"}, format = "csv", transformation_ctx = "datasink2")
job.commit()

需要帮助!!!在


Tags: 文件fromimports3顺序argsjobdynamic
2条回答

我知道这很古老,只是提到了对我有用的方法。在

  1. 转换为数据帧
  2. 加入他们。在

https://stackoverflow.com/a/54362245/8622986所述

希望这有帮助。在

你能试试这个吗:

datasource2  = Join.apply(datasource0, datasource1, 'aaaaaaaaaid', 'aaaaaaaaaid')

这应该行得通。请告诉我,如果这有助于解决问题,也请接受/投票支持答案。在

问候

尤瓦

相关问题 更多 >

    热门问题