【问题标题】:What are the SparkQL options for com.amazonaws.services.glue.writeDynamicFrame?com.amazonaws.services.glue.writeDynamicFrame 的 SparkQL 选项是什么?
【发布时间】:2018-12-09 03:44:51
【问题描述】:

在本文档中:https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-parquet

它提到:“底层 SparkSQL 代码接受的任何选项都可以通过 connection_options 映射参数传递给它。”

但是,我怎样才能知道这些选项是什么? Glue 代码和 SparkQL 代码之间没有明确的映射关系。

(具体来说,我想弄清楚如何控制生成的 parquet 文件的大小)

【问题讨论】:

  • 不幸的是,没有这样的选项来控制镶木地板文件的大小。不过有一个trick 使用合并。
  • 是的:/ 显然我们能得到的最接近的方法是在写出之前设置repartition(n),然后生成 n 个文件(每个分区键组合,如果你也在使用这些文件)

标签: apache-spark-sql aws-glue


【解决方案1】:

可以在DataFrameWriter 文档(Scalapyspark 文档)中查找各种数据源的 SparkSQL 选项。用于编写parquet 的数据源似乎只采用compression 参数。对于读取数据时的 SparkSQL 选项,请查看 DataFrameReader 类。

要控制输出文件的大小,您应该使用并行性 - 就像 @Yuri Bondaruk 评论的那样 - 使用例如 coalesc 函数。

【讨论】:

  • 还是没搞清楚。例如,某些操作有一个写入模式(追加、覆盖、忽略等)选项。可以传入吗?怎么样?
  • 我认为您不能通过选项设置saveModeOptions都是DataSources的自定义参数
  • 保存模式:spark.write.mode(SaveMode.Append)
猜你喜欢
  • 2019-04-26
  • 2012-08-20
  • 2013-08-26
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-09
  • 1970-01-01
相关资源
最近更新 更多