ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' WITH SERDEPROPERTIES ( 'ignore.malformed.json'='true', --指定是否忽略格式不正确的 JSON 数据。 'mapping.someProperty'='jsonProperty'--指定 JSON 对象属性的映射关系。 )
3、处理文本文件,支持自定义的字段分隔符
1 2 3 4 5
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ( 'field.delim'=',', --指定字段分隔符,即文本数据中不同字段之间的分隔符。 'serialization.format'=','--指定序列化格式,即在序列化文本数据时如何表示字段之间的分隔。 )
4、逗号分隔值(CSV)格式的数据
1 2 3 4 5 6
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( 'separatorChar'=',', -- CSV文件中的字段分隔符为逗号 'quoteChar'='"', -- CSV文件中的引号字符为双引号 'escapeChar'='\\'-- CSV文件中的转义字符为反斜杠 )
5、正则表达式匹配的数据
1 2 3 4 5
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' WITH SERDEPROPERTIES ( 'input.regex'='(\\S+) (\\S+) (\\S+)', --指定输入数据的正则表达式 'output.format.string'='%1$s %2$s %3$s'--指定输出数据的格式化字符串 )
6、Thrift格式的数据
1 2 3 4 5
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.thrift.ThriftSerDe' WITH SERDEPROPERTIES ( 'thrift.protocol.id'='1', --指定 Thrift 协议的ID,设置为 '1',表示使用的是二进制协议。 'thrift.column.info'='columnInfo'--指定 Thrift 对象的列信息 )
7、ORC(Optimized Row Columnar)格式的数据
1 2 3
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
8、Parquet格式的数据
1 2 3
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
9、Avro格式的数据
1 2 3
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'