无法在雅典娜中创建表

问题描述 投票:0回答:1

[我尝试在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;错误...

sql hive amazon-athena
1个回答
0
投票

Athena docs到列名的限制还不是很清楚。但是,在我看来,您的问题源于以下事实:某些字段(列名)中有空格,例如CT SourceCT LatitudeCT LongitudeCT App Version。我设法通过用backtikcs替换了这个名称来创建表。

© www.soinside.com 2019 - 2024. All rights reserved.