我能够以拼花格式写入,并通过如下列进行分区:
jobname = args['JOB_NAME']
#header is a spark DataFrame
header.repartition(1).write.parquet('s3://bucket/aws-glue/{}/header/'.format(jobname), 'append', partitionBy='date')
但我无法用Glue的DynamicFrame做到这一点。
header_tmp = DynamicFrame.fromDF(header, glueContext, "header")
glueContext.write_dynamic_frame.from_options(frame = header_tmp, connection_type = "s3", connection_options = {"path": 's3://bucket/output/header/'}, format = "parquet")
我试图通过分区By
作为connection_options
的一部分,因为AWS文档说拼花胶不支持任何格式选项,但这不起作用。
这有可能吗?怎么可能?至于这样做的原因,我认为工作书签是必要的,因为这对我目前不起作用。
我使用我的数据框架中的一些列作为分区键对象:
glueContext.write_dynamic_frame \
.from_options(
frame = some_dynamic_dataframe,
connection_type = "s3",
connection_options = {"path":"some_path", "partitionKeys": ["month", "day"]},
format = "parquet")
来自AWS支持(稍作解释):
到目前为止,Glue在写入parquet时不支持partitionBy参数。不过,这项工作正在进行中。
使用Glue API写入parquet是作业书签功能使用S3源所必需的。
因此,到目前为止,无法对拼花地板文件进行分区并启用作业书签功能。
编辑:今天(2018年3月23日),我在文档中发现:
glue_context.write_dynamic_frame.from_options(
frame = projectedEvents,
connection_options = {"path": "$outpath", "partitionKeys": ["type"]},
format = "parquet")
这个选项可能一直存在,我和AWS支持人员都错过了它,或者它是最近才添加的。不管怎样,现在似乎是可能的。
我正在使用AWS Glue爬行器来爬行大约170 GB的avro数据,以创建一个数据目录表。 avro数据中有几个不同的模式版本,但爬虫程序仍然能够将数据合并到一个表中(我启用了“按数据兼容性和模式相似性分组-模式”)。 这就是事情出现问题的时候。 我只能使用雅典娜从 一个简短的Google检查让我相信这与avro文件中的模式有关。 通常,这是我集中精力的地方,但是:我已经能够做完全相同的程序(A
由于,我检查了一个spark作业的输出拼花文件,该作业总是会发出声音。我在Cloudera 5.13.1上使用了 我注意到拼花地板排的大小是不均匀的。第一排和最后一排的人很多。剩下的真的很小。。。 拼花地板工具的缩短输出,: 这是已知的臭虫吗?如何在Spark中设置拼花地板块大小(行组大小)? 编辑: Spark应用程序的作用是:它读取一个大的AVRO文件,然后通过两个分区键(使用
我是Spark的初学者,试图理解Spark数据帧的机制。当从csv和parquet加载数据时,我比较了spark sql dataframe上sql查询的性能。我的理解是,一旦数据加载到spark数据框中,数据的来源(csv或parquet)应该无关紧要。然而,我看到了两者之间的显著性能差异。我使用以下命令加载数据,并对其编写查询。 请解释差异的原因。
目前,我在S3中有数千个无头、管道分隔的GZIP压缩文件,总计约10TB,具有相同的模式。在AWS Glue中,(1)添加头文件,(2)使用文件中的“日期”字段转换为按周划分的拼花格式,(3)将文件添加到Glue数据目录中,以便在AWS Athena中进行查询?
我们有一个以红移方式处理数据的用例。但我想在S3中创建这些表的备份,以便使用Spectrum查询这些表。 为了将表从Redshift移动到S3,我使用了一个胶水ETL。我已经为AWS红移创建了一个爬虫程序。胶水作业将数据转换为拼花地板,并将其存储在S3中,按日期进行分区。然后,另一个爬虫会对S3文件进行爬行,以再次对数据进行编目。 如何消除第二个爬虫并在作业本身中执行此操作?
我如何使用胶水/火花转换成拼花,这也是分区的日期和分裂在n个文件每天?。这些示例不包括分区、拆分或供应(多少节点和多大节点)。每天包含几百GBS。 因为源CSV不一定在正确的分区中(错误的日期),并且大小不一致,所以我希望用正确的分区和更一致的大小写到分区的parquet。