hive 中使用avro

参考链接: http://my.oschina.net/weiqingbin/blog/194411

创建hive 表时对avro使用snappy压缩:

点击(此处)折叠或打开

  1. hive> set hive.exec.compress.output=true;
  2. hive> set avro.output.codec=snappy;
创建hive表的语句:

点击(此处)折叠或打开

  1. CREATE EXTERNAL TABLE ecc_wj_2
  2.     ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
  3.     STORED AS
  4.     INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
  5.     OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
  6.     LOCATION '/lcz/data'      --hdfs 路径
  7.     TBLPROPERTIES (
  8.         'avro.schema.url'='hdfs:///lcz/device20102.avsc'   --hdfs 路径
  9.     );
avro schema文件:

点击(此处)折叠或打开

  1. {
  2.    "namespace": "com.sany.ecc.model.huaxing",
  3.    "type": "record",
  4.    "name": "Device2010",
  5.    "fields": [
  6.       {
  7.          "name": "ST_PID",
  8.          "type": [
  9.              "string",
  10.              "null"
  11.          ]
  12.       },
  13.       {
  14.          "name": "ST_LOGINID",
  15.          "type": [
  16.              "string",
  17.              "null"
  18.          ]
  19.       },
  20.       {
  21.          "name": "RE_EN_PID",
  22.          "type": [
  23.              "string",
  24.              "null"
  25.          ]
  26.       },
  27.       {
  28.          "name": "ST_LOGINTIME",
  29.          "type": [
  30.          "long",
  31.          "null"
  32.          ]
  33.       },
  34.       {
  35.          "name": "ST_CONNECTTIME",
  36.          "type": [
  37.                   "long",
  38.                   "null"
  39.              ]
  40.       },
  41.       {
  42.          "name": "ST_UPDATETIME",
  43.          "type": [
  44.                    "long",
  45.                    "null"
  46.               ]
  47.       },
  48.       {
  49.          "name": "ST_TOTALWKTIME",
  50.          "type": [
  51.                      "double",
  52.                      "null"
  53.                  ]    
  54.       },
  55.       {
  56.          "name": "ST_WKTIME",
  57.          "type": [
  58.                      "double",
  59.                      "null"
  60.                  ]    
  61.       },
  62.       {
  63.          "name": "ST_RMNTIME",
  64.          "type": [
  65.                     "double",
  66.                     "null"
  67.                  ]
  68.       },
  69.       {
  70.          "name": "ST_BERRORCODE",
  71.          "type": [
  72.                     "int",
  73.                     "null"
  74.                   ]
  75.       },
  76.       {
  77.          "name": "ST_WERRORCODE",
  78.          "type": [
  79.                     "int",
  80.                     "null"
  81.                  ]
  82.       },
  83.       {
  84.          "name": "ST_BALMCODE",
  85.          "type": [
  86.                      "int",
  87.                      "null"
  88.                   ]
  89.       },
  90.       {
  91.          "name": "ST_WALMCODE",
  92.          "type": [
  93.                       "int",
  94.                       "null"
  95.                   ]
  96.       },
  97.       {
  98.          "name": "ST_GPSSTA",
  99.          "type": [
  100.                       "int",
  101.                       "null"
  102.                   ]
  103.       },
  104.       {
  105.          "name": "ST_LONGITUDE",
  106.          "type": [
  107.                        "double",
  108.                        "null"
  109.                   ]
  110.       },
  111.       {
  112.          "name": "ST_LATITUDE",
  113.          "type": [
  114.                         "double",
  115.                         "null"
  116.                     ]
  117.       },
  118.       {
  119.          "name": "ST_ALTITUDE",
  120.          "type": [
  121.                         "double",
  122.                         "null"
  123.                     ]
  124.       },
  125.       {
  126.          "name": "ST_VELOCITY",
  127.          "type": [
  128.                         "double",
  129.                         "null"
  130.                     ]
  131.       },
  132.       {
  133.          "name": "ST_ORIENTATION",
  134.          "type": [
  135.                         "double",
  136.                         "null"
  137.                     ]
  138.       },
  139.       {
  140.          "name": "ST_SATICUNT",
  141.          "type": [
  142.                         "int",
  143.                         "null"
  144.                      ]
  145.       },
  146.       {
  147.          "name": "ST_SGNLQ",
  148.          "type": [
  149.                         "double",
  150.                         "null"
  151.                      ]
  152.       },
  153.       {
  154.          "name": "ST_STEPPOS",
  155.          "type": [
  156.                         "int",
  157.                         "null"
  158.                     ]
  159.       },
  160.       {
  161.          "name": "ST_ENGV",
  162.          "type": [
  163.                "double",
  164.                "null"
  165.               ]
  166.       },
  167.       {
  168.          "name": "ST_OILLEV",
  169.          "type": [
  170.                "double",
  171.                "null"
  172.               ]
  173.       },
  174.       {
  175.          "name": "ST_BATTERYVOL",
  176.          "type": [
  177.                   "double",
  178.                "null"
  179.               ]
  180.       },
  181.       {
  182.          "name": "ST_ERRDEALSTA",
  183.          "type": [
  184.                   "int",
  185.                "null"
  186.               ]
  187.       },
  188.       {
  189.          "name": "ST_CMMCTSCH",
  190.          "type": [
  191.                   "int",
  192.                "null"
  193.               ]
  194.       },
  195.       {
  196.          "name": "ST_UINTRESERV10",
  197.          "type": [
  198.                "int",
  199.                "null"
  200.               ]
  201.       },
  202.       {
  203.          "name": "ST_UINTRESERV11",
  204.          "type": [
  205.                "int",
  206.                "null"
  207.               ]
  208.       },
  209.       {
  210.          "name": "ST_UINTRESERV12",
  211.          "type": [
  212.                "int",
  213.                "null"
  214.               ]
  215.       },
  216.       {
  217.          "name": "ST_UINTRESERV13",
  218.          "type": [
  219.                "int",
  220.                "null"
  221.               ]
  222.       },
  223.       {
  224.          "name": "ST_UINTRESERV14",
  225.          "type": [
  226.                "int",
  227.                "null"
  228.               ]
  229.       },
  230.       {
  231.          "name": "ST_UINTRESERV15",
  232.          "type": [
  233.                "int",
  234.                "null"
  235.               ]
  236.       },
  237.       {
  238.          "name": "ST_UINTRESERV16",
  239.          "type": [
  240.                "int",
  241.                "null"
  242.               ]
  243.       },
  244.       {
  245.          "name": "ST_UINTRESERV17",
  246.          "type": [
  247.                "int",
  248.                "null"
  249.               ]
  250.       },
  251.       {
  252.          "name": "ST_UINTRESERV18",
  253.          "type": [
  254.                "int",
  255.                "null"
  256.               ]
  257.       },
  258.       {
  259.          "name": "ST_UINTRESERV19",
  260.          "type": [
  261.                "int",
  262.                "null"
  263.               ]
  264.       },
  265.       {
  266.          "name": "ST_UINTRESERV20",
  267.          "type": [
  268.                "int",
  269.                "null"
  270.               ]
  271.       },
  272.       {
  273.          "name": "ST_UINTRESERV21",
  274.          "type": [
  275.                "int",
  276.                "null"
  277.               ]
  278.       },
  279.       {
  280.          "name": "ST_UINTRESERV22",
  281.          "type": [
  282.                "int",
  283.                "null"
  284.               ]
  285.       },
  286.       {
  287.          "name": "ST_UINTRESERV23",
  288.          "type": [
  289.                "int",
  290.                "null"
  291.               ]
  292.       },
  293.       {
  294.          "name": "ST_UINTRESERV24",
  295.          "type": [
  296.                "int",
  297.                "null"
  298.               ]
  299.       },
  300.       {
  301.          "name": "ST_UINTRESERV25",
  302.          "type": [
  303.                "int",
  304.                "null"
  305.               ]
  306.       },
  307.       {
  308.          "name": "ST_UINTRESERV26",
  309.          "type": [
  310.                "int",
  311.                "null"
  312.               ]
  313.       },
  314.       {
  315.          "name": "ST_UINTRESERV27",
  316.          "type": [
  317.                "int",
  318.                "null"
  319.               ]
  320.       },
  321.       {
  322.          "name": "ST_UINTRESERV28",
  323.          "type": [
  324.                "int",
  325.                "null"
  326.               ]
  327.       },
  328.       {
  329.          "name": "ST_UINTRESERV29",
  330.          "type": [
  331.                "int",
  332.                "null"
  333.               ]
  334.       },
  335.       {
  336.          "name": "ST_UINTRESERV30",
  337.          "type": [
  338.                "int",
  339.                "null"
  340.               ]
  341.       },
  342.       {
  343.          "name": "ST_UINTRESERV31",
  344.          "type": [
  345.                "int",
  346.                "null"
  347.               ]
  348.       },
  349.       {
  350.          "name": "ST_UINTRESERV32",
  351.          "type": [
  352.                "int",
  353.                "null"
  354.               ]
  355.       },
  356.       {
  357.          "name": "ST_FLOATRESERV13",
  358.           "type": [
  359.                "double",
  360.                "null"
  361.               ]
  362.       },

  363.       {
  364.          "name": "ST_FLOATRESERV14",
  365.           "type": [
  366.                "double",
  367.                "null"
  368.               ]
  369.       },

  370.       {
  371.          "name": "ST_FLOATRESERV15",
  372.           "type": [
  373.                "double",
  374.                "null"
  375.               ]
  376.       },

  377.       {
  378.          "name": "ST_FLOATRESERV16",
  379.           "type": [
  380.                "double",
  381.                "null"
  382.               ]
  383.       },

  384.       {
  385.          "name": "ST_FLOATRESERV17",
  386.           "type": [
  387.                "double",
  388.                "null"
  389.               ]
  390.       },

  391.       {
  392.          "name": "ST_FLOATRESERV18",
  393.           "type": [
  394.                "double",
  395.                "null"
  396.               ]
  397.       },
  398.       {
  399.          "name": "ST_FLOATRESERV19",
  400.           "type": [
  401.                "double",
  402.                "null"
  403.               ]
  404.       },
  405.       {
  406.          "name": "ST_FLOATRESERV20",
  407.           "type": [
  408.                "double",
  409.                "null"
  410.               ]
  411.       },
  412.       {
  413.          "name": "ST_FLOATRESERV21",
  414.           "type": [
  415.                "double",
  416.                "null"
  417.               ]
  418.       },
  419.       {
  420.          "name": "ST_FLOATRESERV22",
  421.           "type": [
  422.                "double",
  423.                "null"
  424.               ]
  425.       },
  426.       {
  427.          "name": "ST_FLOATRESERV23",
  428.           "type": [
  429.                "double",
  430.                "null"
  431.               ]
  432.       },
  433.       {
  434.          "name": "ST_FLOATRESERV24",
  435.           "type": [
  436.                "double",
  437.                "null"
  438.               ]
  439.       },
  440.       {
  441.          "name": "ST_FLOATRESERV25",
  442.           "type": [
  443.                "double",
  444.                "null"
  445.               ]
  446.       },
  447.       {
  448.          "name": "ST_FLOATRESERV26",
  449.           "type": [
  450.                "double",
  451.                "null"
  452.               ]
  453.       },
  454.       {
  455.          "name": "ST_FLOATRESERV27",
  456.           "type": [
  457.                "double",
  458.                "null"
  459.               ]
  460.       },
  461.       {
  462.          "name": "ST_FLOATRESERV28",
  463.           "type": [
  464.                "double",
  465.                "null"
  466.               ]
  467.       },
  468.       {
  469.          "name": "ST_FLOATRESERV29",
  470.           "type": [
  471.                "double",
  472.                "null"
  473.               ]
  474.       },
  475.       {
  476.          "name": "ST_FLOATRESERV30",
  477.           "type": [
  478.                "double",
  479.                "null"
  480.               ]
  481.       },
  482.       {
  483.          "name": "ST_FLOATRESERV31",
  484.           "type": [
  485.                "double",
  486.                "null"
  487.               ]
  488.       },
  489.       {
  490.          "name": "ST_FLOATRESERV32",
  491.           "type": [
  492.                "double",
  493.                "null"
  494.               ]
  495.       },
  496.       {
  497.          "name": "ST_CHECKMARK",
  498.           "type": [
  499.                "string",
  500.                "null"
  501.               ]
  502.       },
  503.       {
  504.          "name": "ST_STATE",
  505.           "type": [
  506.                "int",
  507.                "null"
  508.               ]
  509.       },
  510.       {
  511.          "name": "ST_MA_SERIALNO",
  512.          "type": [
  513.                  "null",
  514.                  "string"
  515.                  ],
  516.          "default": null
  517.       },
  518.       {
  519.          "name": "ST_FLOATRESERV33",
  520.          "type": [
  521.                  "null",
  522.                  "double"
  523.                  ],
  524.          "default": null
  525.       },
  526.       {
  527.          "name": "ST_FLOATRESERV34",
  528.          "type": [
  529.                  "null",
  530.                  "double"
  531.                  ],
  532.          "default": null
  533.       }
  534.    ]
  535. }

注意:在schema文件中,如果当数据文件中某个字段没有值,如果schema中没有出现允许该字段为null,会抛出错误。 一定要定义type,允许为空,且要加上默认值null
        顺序不能变,否则也创建不成功:
        正确顺序如:
              {
         "name": "ST_FLOATRESERV34",
         "type": [
                 "null",
                 "double"
                 ],
         "default": null
      }
    

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31347383/viewspace-2123733/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31347383/viewspace-2123733/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值