Kir*_*rst 4 amazon-web-services pyspark amazon-athena aws-glue
我在Glue / Athena中注册了一个数据集,称为my_db.table。我可以通过Athena来查询它,而且一切似乎都井井有条。
我正在尝试在Glue作业中使用此表,但收到以下相当不透明的错误消息:
py4j.protocol.Py4JJavaError: An error occurred while calling o54.getCatalogSource.
: java.lang.Error: No classification or connection in my_db.table
Run Code Online (Sandbox Code Playgroud)
这似乎表明Glue无法看到我的表的目录条目,或者无法使用该条目中的信息,但是我没有其他的可见性。
有谁遇到过此错误,可能是什么原因引起的?
该错误消息实际上很好地描述了该问题-查询表没有分类。
通过胶水创建的表与分类注册- ,csv,parquet,orc,。avro json请参阅使用Athena为AWS Glue作业创建表。
我通过Athena“手动”创建的表没有分类。请从“表胶水”页面中查看以下屏幕截图。
解决方案很简单:在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');
Run Code Online (Sandbox Code Playgroud)
现在,该表在Glue界面中具有分类,并且可以通过Glue作业进行访问。
| 归档时间: |
|
| 查看次数: |
1988 次 |
| 最近记录: |