[我尝试在Athena中为我的s3中的嵌套json文件创建一个表,但收到错误-
line 1:8: no viable alternative at input 'create external' (service: amazonathena; status code: 400; error code: invalidrequestexception; request id: dcea57c7-b801-41a4-8edb-e42eb1608fea)
表名和字段看起来还不错,还附有我s3来源中的示例json。已参考了Athena的官方文档。另外,请让我知道是否以及如何从Athena的“创建表”向导中添加嵌套字段
我的查询是:
CREATE EXTERNAL TABLE bhaskar_clevertap(
eventName string,
ts bigint,
eventProps struct<
ContentCategory: string,
Previous_screen: string,
Platform: string,
Category: string,
Status: string,
CT Source: string,
CT Latitude: int,
CT Longitude: int,
Phone: bigint,
ADID: string,
Email: string,
ScreenName: string,
DBID: bigint,
App_version: string,
Device_ID: string,
CT App Version: string>,
profile struct<
objectId: string,
all_identities: string,
identity: bigint,
platform: string,
phone: bigint,
name: string,
email: string,
push_token: string>,
deviceInfo struct<
osVersion: int,
sdkVersion: int,
make: string,
model: string,
appVersion: string,
browser: string,
dpi: int>,
dimensions struct<
width: int,
height: int,
unit: string>
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
LOCATION 's3://clevertap-data-bhaskarapp/'
样本json对象看起来像-->
{ "eventName": "ScreenView", "ts": 20200106073433, "eventProps": { "ContentCategory": "ePaper", "Previous_screen": "", "Platform": "Android", "Category": "ePaper", "Status": "LoggedIn", "CT Source": "Mobile", "CT Latitude": 25.613659, "CT Longitude": 85.101135, "Phone": "+917678284002", "ADID": "fc2adc9b-6e31-459c-9bee-d6039a263e5c", "Email": "[email protected]", "ScreenName": "ePaper_BIHAR_पटना_पटना_Page3", "DBID": "1008894402", "App_version": "6.1.0", "Device_ID": "3fccfa7749a8fba2", "CT App Version": "6.1.0" }, "profile": { "objectId": "__gfc2adc9b6e31459c9beed6039a263e5c", "all_identities": ["7678284***", "1008894402@****"], "identity": "7678284***", "platform": "Android", "phone": 917678284***, "name": "NA", "email": "1008894402@****", "push_token": "fcm:dAI-w-gLwyk:APA91bE5E3pz63NMnV9rxqMwYTsOtQnmwjI8ZdElIX98fo0qiCPVnvekDwMMt27tAuI1F5PZmufw1OLpC_6V_hE_n_9eUVn8tF7EqA9MUu80wionD2FYtj*****FrSQDnDJoTFVZFmqg" }, "deviceInfo": { "osVersion": "7.0", "sdkVersion": "30501", "make": "Xiaomi", "model": "Redmi Note 4", "appVersion": "6.1.0", "browser": "MobileApp", "dpi": 480, "dimensions": { "width": 69, "height": 121, "unit": "mm" } }
}
请帮助我查找查询问题。
[我尝试在Athena中为我在s3中的嵌套json文件创建一个表,但收到错误-行1:8:在输入'create external'处没有可行的替代方案(服务:amazonathena;状态代码:400;错误...
从Athena docs到列名的限制还不是很清楚。但是,在我看来,您的问题源于以下事实:某些字段(列名)中有空格,例如CT Source
,CT Latitude
,CT Longitude
和CT App Version
。我设法通过用backtikcs替换了这个名称来创建表。