为什么在Hive中将字段切成两部分?

时间:2016-10-24 08:34:36

标签: hadoop hive

以下是代码:

    -- create table novaya.unnormal as 
select query from  default.daily_session_mobile
where  dt = '20161020'
and page in ('/click_search_deal', '/click_search_product')
and query like '%memberID=33930938%'
and query like '%스텐드지퍼팩%'

结果只有一条记录而且是对的 “查询”字段中的值为

  

SEARCHCOUNT = 52&安​​培;秩= 39&安培; LOGTYPE =单击&安培; currentView = / search_list&安培; searchId = 4c3ecee1354943e999e0c1566243bf87&安培; logCategory =事件&安培; ITEMID = 22780015&安培; itemProductID = 4和Q =스텐드지퍼팩&安培; MEMBERID = 33930938&安培;的productID = 4993730&安培; eventReferrer = / click_search_list&安培; REQUEST_TIME = 1476889555129&安培; TZ = + 0900&安培; appVersion = 4.3.8&安培; wl_mo = LG-F400L&安培; wl_ma = LGE&安培; wl_sn = Android和安培; wl_v = 4.4.2&安培; wl_r = 1440x2392&安培; wl_l = KO&安培; wl_c = KR

并且值中没有空格。我们专注于“q =스텐드지퍼팩&”在里面。 看起来不错。 但是当我使用create table novaya.unnormal as select ...时 表novaya.unnormal的查询已被删除。 新的“查询”仅包含整个查询的一部分

  

“SEARCHCOUNT = 52&安​​培;秩= 39&安培; LOGTYPE =单击&安培; currentView = / search_list&安培; searchId = 4c3ecee1354943e999e0c1566243bf87&安培; logCategory =事件&安培; ITEMID = 22780015&安培; itemProductID = 4和Q =”   其中一半缺失。   这有什么问题?

1 个答案:

答案 0 :(得分:1)

使用create table novaya.unnormal as语句创建表时,如果不指定任何输入/输出格式和分隔符,将选择所有默认值,这可能会导致스字符充当分隔符。

我建议查看源表(describe formatted default.daily_session_mobile)的属性,并创建具有类似输入/输出格式和分隔符的新表。 (在novaya.unnormalas之间设置)