无法在amazon athena中创建表

2ekbmq32  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(398)

我尝试在athena中为s3中的嵌套json文件创建一个表,但收到一个错误:
第1:8行:输入“create external”(服务:amazonathena;状态码:400;错误代码:invalidrequestexception;请求id:dcea57c7-b801-41a4-8edb-e42eb1608fea)
表名和字段看起来不错,还附带了来自我的s3源代码的示例json。参考了雅典娜的官方文件。另外,让我知道我是否和如何添加嵌套字段从创建表向导在雅典娜。
我的问题是:

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": "1008894402@dbcorp.in",
    "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"
    }
}

}
请帮助我发现问题,我的查询。

w1jd8yoj

w1jd8yoj1#

雅典娜文档中对列名的限制不是很清楚。但是,在我看来,您的问题源于某些字段(列名)中有空格,例如。 CT Source , CT Latitude , CT Longitude 以及 CT App Version . 我通过在这个名称周围加上反记号来创建表。

CREATE EXTERNAL TABLE bhaskar_clevertap_2(
         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/'

相关问题