【问题标题】:Glue PySpark Job: An error occurred while calling o100.pyWriteDynamicFrameGlue PySpark 作业:调用 o100.pyWriteDynamicFrame 时出错
【发布时间】:2021-07-06 12:08:19
【问题描述】:

我正在构建数据管道,通过在 AWS Glue 中创建自定义连接器,通过 AWS Glue 将数据从 S3 存储桶迁移到 Snowflake。

运行胶水作业时出现以下错误:

**An error occurred while calling o100.pyWriteDynamicFrame. Glue ETL Marketplace: JDBC Data Sink: Column "serial_number" not found in schema Some(StructType(StructField(SERIAL_NUMBER,DoubleType,true), StructField(COMPANY_NAME,StringType,true), StructField(EMPLOYEE_MARKME,StringType,true), StructField(DESCRIPTION,StringType,true), StructField(LEAVE,LongType,true)))**

注意:连接器和驱动程序分别使用以下版本-

  1. Snowflake Spark 连接器 - spark-snowflake_2.11-2.4.14-spark_2.3.jar
  2. Snowflake JDBC 驱动程序 - snowflake-jdbc-3.8.3.jar
  3. 与 Glue 位于同一区域的 S3 存储桶。

如果我遗漏了什么或者我使用了不正确的版本/不支持的连接器和驱动程序版本,请告诉我......

【问题讨论】:

  • 检查序列号列

标签: pyspark snowflake-cloud-data-platform aws-glue snowflake-schema aws-glue-spark


【解决方案1】:

您是否在双引号中传递列?如果是,那可能是根本原因。 Snowflake 将所有名称隐式转换为大写,除非您在双引号中指定它并且它也可以反过来工作(如果您有一个名为 SERIAL_NUMBER 的列名并且您在查询中选择“serial_number”,它将无法找到列。

【讨论】:

  • 我在映射时通过了大写的 column_names 并且它起作用了。感谢您的建议。
猜你喜欢
  • 2022-12-16
  • 2021-07-05
  • 1970-01-01
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多