AWS Glue 无法访问输入数据集
AWS Glue unable to access input data set
我在 Glue / Athena 中注册了一个数据集,称之为 my_db.table
。我可以通过 Athena 查询它,而且一切似乎都井井有条。
我正尝试在 Glue 作业中使用此 table,但收到以下相当不透明的错误消息:
py4j.protocol.Py4JJavaError: An error occurred while calling o54.getCatalogSource.
: java.lang.Error: No classification or connection in my_db.table
这似乎表明 Glue 看不到我的 table 的目录条目,或者无法使用该条目中的信息,但我没有比这更进一步的可见性。
有没有人遇到过这个错误,可能是什么原因导致的?
错误消息实际上很好地描述了问题 - 所查询的 table 没有分类。
通过 Glue 创建的表已注册分类 - csv
、parquet
、orc
、avro
、json
。参见 Creating Tables Using Athena for AWS Glue Jobs。
我通过 Athena 创建的 table 'manually' 没有分类。请参阅 Glue 'tables' 页面中的以下屏幕截图。
解决方案很简单:在 CREATE TABLE
脚本的末尾,用户必须像这样附加一个 classification
属性
CREATE EXTERNAL TABLE IF NOT EXISTS my_db.my_table (
`id` int,
`description` string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = ',',
'field.delim' = ',',
'collection.delim' = 'undefined',
'mapkey.delim' = 'undefined'
) LOCATION 's3://my_bucket/'
TBLPROPERTIES ('classification'='csv');
现在 table 在 Glue 界面中有一个分类,可以通过 Glue 作业访问。
需要在您创建的 table 中添加分类。要通过 UI 添加它,请按照以下步骤操作:
- 去胶水里的table:
- 单击编辑 Table 并添加它,如图所示:
我在 Glue / Athena 中注册了一个数据集,称之为 my_db.table
。我可以通过 Athena 查询它,而且一切似乎都井井有条。
我正尝试在 Glue 作业中使用此 table,但收到以下相当不透明的错误消息:
py4j.protocol.Py4JJavaError: An error occurred while calling o54.getCatalogSource.
: java.lang.Error: No classification or connection in my_db.table
这似乎表明 Glue 看不到我的 table 的目录条目,或者无法使用该条目中的信息,但我没有比这更进一步的可见性。
有没有人遇到过这个错误,可能是什么原因导致的?
错误消息实际上很好地描述了问题 - 所查询的 table 没有分类。
通过 Glue 创建的表已注册分类 - csv
、parquet
、orc
、avro
、json
。参见 Creating Tables Using Athena for AWS Glue Jobs。
我通过 Athena 创建的 table 'manually' 没有分类。请参阅 Glue 'tables' 页面中的以下屏幕截图。
解决方案很简单:在 CREATE TABLE
脚本的末尾,用户必须像这样附加一个 classification
属性
CREATE EXTERNAL TABLE IF NOT EXISTS my_db.my_table (
`id` int,
`description` string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = ',',
'field.delim' = ',',
'collection.delim' = 'undefined',
'mapkey.delim' = 'undefined'
) LOCATION 's3://my_bucket/'
TBLPROPERTIES ('classification'='csv');
现在 table 在 Glue 界面中有一个分类,可以通过 Glue 作业访问。
需要在您创建的 table 中添加分类。要通过 UI 添加它,请按照以下步骤操作:
- 去胶水里的table:
- 单击编辑 Table 并添加它,如图所示: