首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在中创建Table

无法在中创建Table
EN

Stack Overflow用户
提问于 2020-01-27 11:15:01
回答 1查看 5.8K关注 0票数 1

我尝试在雅典娜中为s3中的嵌套json文件创建一个表,但是收到了一个错误:

第1:8行:输入“创建外部”(service: amazonathena;状态代码: 400;错误代码:失效请求异常;请求id: dcea57c7-b801-41a4-8edb-e42eb1608fea)

表名和字段似乎没问题,还附上了我的s3源代码中的示例json。已经提交了雅典娜的官方文件。此外,让我知道是否和如何添加嵌套字段创建表向导在雅典娜。

我的问题是:

代码语言:javascript
复制
    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对象如下所示:

代码语言:javascript
复制
{
"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"
    }
}

}

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-27 11:55:34

雅典娜博士 wrt到列名限制并不十分清楚。然而,在我看来,您的问题似乎源于这样一个事实:一些字段(列名)中有空格,例如CT SourceCT LatitudeCT LongitudeCT App Version。我成功地创建了表,方法是在这个名称周围加上backticks。

代码语言:javascript
复制
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/' 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59930025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档