标签: hive-serde

在Hive中"存储为输入格式,输出格式"和"存储为"之间的差异

如果表是ORC show create table,则在执行a 然后执行结果create table语句时发出问题.

使用show create table,你得到这个:

STORED AS INPUTFORMAT
  ‘org.apache.hadoop.hive.ql.io.orc.OrcInputFormat’
OUTPUTFORMAT
  ‘org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat’
Run Code Online (Sandbox Code Playgroud)

但是如果使用这些子句创建表,则在选择时会出现转换错误.错误喜欢:

异常java.io.IOException失败:java.lang.ClassCastException:org.apache.hadoop.hive.ql.io.orc.OrcStruct无法强制转换为org.apache.hadoop.io.BinaryComparable


要解决这个问题,只需将create table语句更改为STORED AS ORC

But,正如答案在类似问题中所述: 在Hive中'InputFormat,OutputFormat'和'Stored as'之间有什么区别?.

我无法弄清楚原因.

hadoop hive hiveql orc hive-serde

8
推荐指数
1
解决办法
4258
查看次数

为什么在Hive中使用OpenCSVSerde时所有列都创建为字符串?

我正在尝试使用OpenCSVSerde以及一些整数和日期列创建一个表。但是列将转换为String。这是预期的结果吗?解决方法是,在此步骤之后进行显式类型转换(这会使完整的运行变慢)

hive> create external table if not exists response(response_id int,lead_id int,creat_date date ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ('quoteChar' = '"', 'separatorChar' = '\,', 'serialization.encoding'='UTF-8', 'escapeChar' = '~')   location '/prod/hive/db/response' TBLPROPERTIES ("serialization.null.format"="");
OK
Time taken: 0.396 seconds
hive> describe formatted response;
OK
# col_name              data_type               comment

response_id             string                  from deserializer
lead_id                 string                  from deserializer
creat_date              string                  from deserializer
Run Code Online (Sandbox Code Playgroud)

解释将数据类型更改为字符串的源代码

hadoop hive create-table opencsv hive-serde

6
推荐指数
1
解决办法
1793
查看次数

在Hive中'InputFormat,OutputFormat'和'Stored as'之间有什么区别?

我是Bigdata的新手,目前正在学习Hive.作为SerDe的一部分,我理解Hive中的InputFormat和OutputFormat的概念.我也理解'Stored as'用于以特定格式存储文件,就像InputFormat一样.但我不明白使用'InputFormat,OutputFormat'和'Stored as'之间有什么重大区别.

任何帮助表示赞赏.

hadoop hive hiveql hive-serde

6
推荐指数
1
解决办法
5985
查看次数

JSON4S类型提示不起作用

以下测试片段

implicit val formats = DefaultFormats + FullTypeHints(Contacts.classList)

val serialized = Serialization.write(List(Mail(field = "random@mail.com", note = "Random note.")))
println(serialized)

Serialization.read[List[Contact[_]]](serialized).isInstanceOf[List[Mail]] should be (true)
Run Code Online (Sandbox Code Playgroud)

失败了

Can't find constructor for Contact[Object]
org.json4s.package$MappingException: Can't find constructor for Contact[Object]
    at org.json4s.reflect.package$.fail(package.scala:95)
    at org.json4s.reflect.ScalaSigReader$$anonfun$5.apply(ScalaSigReader.scala:21)
    at org.json4s.reflect.ScalaSigReader$$anonfun$5.apply(ScalaSigReader.scala:21)
    at scala.Option.getOrElse(Option.scala:121)
    at org.json4s.reflect.ScalaSigReader$.readConstructor(ScalaSigReader.scala:21)
    at org.json4s.reflect.Reflector$ClassDescriptorBuilder.ctorParamType(Reflector.scala:93)
    at org.json4s.reflect.Reflector$ClassDescriptorBuilder$$anonfun$createConstructorDescriptors$3$$anonfun$15.apply(Reflector.scala:156)
    at org.json4s.reflect.Reflector$ClassDescriptorBuilder$$anonfun$createConstructorDescriptors$3$$anonfun$15.apply(Reflector.scala:142)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
    at scala.collection.AbstractTraversable.map(Traversable.scala:104)
    at org.json4s.reflect.Reflector$ClassDescriptorBuilder$$anonfun$createConstructorDescriptors$3.apply(Reflector.scala:142)
    at org.json4s.reflect.Reflector$ClassDescriptorBuilder$$anonfun$createConstructorDescriptors$3.apply(Reflector.scala:136)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.mutable.ArraySeq.foreach(ArraySeq.scala:74)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
    at scala.collection.AbstractTraversable.map(Traversable.scala:104)
    at org.json4s.reflect.Reflector$ClassDescriptorBuilder.createConstructorDescriptors(Reflector.scala:136)
    at …
Run Code Online (Sandbox Code Playgroud)

serialization json scala json4s hive-serde

6
推荐指数
1
解决办法
567
查看次数

AWS Athena (JSON) 的 SerDe 属性列表

我正在测试 AWS 的 Athena 产品,到目前为止运行良好。但我想知道 SerDe 属性的列表。我找了很远很远也没有找到。例如"ignore.malformed.json" = "true",我正在使用这个,但我很确定还有很多其他选项可以调整查询。

例如,我找不到有关“路径”属性的作用的信息,因此拥有完整列表会很棒。

我查看了 Apache Hive 文档但找不到这个,在 AWS 文档/论坛上也没有。

谢谢!

amazon-web-services amazon-athena hive-serde

5
推荐指数
1
解决办法
3907
查看次数

如何使用Hive(get_json_object)或json serde查询结构体数组

我正在尝试查询HDFS上存储的以下JSON示例文件

{
    "tag1": "1.0",
    "tag2": "blah",
    "tag3": "blahblah",
    "tag4": {
        "tag4_1": [{
                "tag4_1_1": [{
                        "tag4_1_1_1": {
                            "Addr": {
                                "Addr1": "blah",
                                "City": "City",
                                "StateProvCd": "NY",
                                "PostalCode": "99999"
                            }
                        }
                        "tag4_1_1_1": {
                            "Addr": {
                                "Addr1": "blah2",
                                "City": "City2",
                                "StateProvCd": "NY",
                                "PostalCode": "99999"
                            }
                        }
                    }
                ]
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用以下内容在数据上创建了一个外部表

CREATE  EXTERNAL TABLE DB.hv_table
(
  tag1 string
, tag2 string
, tag3 string
, tag4 struct<tag4_1:ARRAY<struct<tag4_1_1:ARRAY<struct<tag4_1_1_1:struct<Addr
                Addr1:string
                , City:string
                , StateProvCd:string
                , PostalCode:string>>>>>>
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' 
LOCATION 'HDFS/location';
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想查询数据,以便其返回给我: …

json hive hql hive-serde

4
推荐指数
1
解决办法
2万
查看次数