小编Lar*_*ler的帖子

__HIVE_DEFAULT_PARTITION__ 作为粘合 ETL 作业中的分区值

我有通过胶水爬行器爬行的 CSV 数据,最终出现在一张表中。

我正在尝试运行 ETL 作业,将磁盘上的数据重新分区到日期列的某些组件中。然后将 CSV 转换为 parquet。

即我的数据中有一个名为“date”的列,并且想要将数据分区为 s3 上的年、月、日分区。

我能够转换为 parquet 并使其在序列号值(不同的列)上正确分区,但它会将值“__HIVE_DEFAULT_PARTITION__”放入日期相关分区的所有值年、月和日中。

我可以对其他列(例如序列号)进行分区,但年/月/日不在原始数据集中,因此我的方法是从日期列创建值作为数据中的新列设置并告诉 write_dynamic_frame 函数按列分区,但这不起作用。

一般来说,我对 Spark/pyspark 和glue 很陌生,所以我很可能错过了一些简单的东西。

感谢任何提供帮助的人。

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.sql import functions as F
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.dynamicframe import DynamicFrame
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 = "my_database", table_name = …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 apache-spark boto3 pyspark aws-glue

6
推荐指数
1
解决办法
6120
查看次数

标签 统计

amazon-s3 ×1

apache-spark ×1

aws-glue ×1

boto3 ×1

pyspark ×1