Python 将日志文件放入配置单元
我有一个非结构化文件,其中包含以下数据: file.log:Python 将日志文件放入配置单元,python,hadoop,hive,Python,Hadoop,Hive,我有一个非结构化文件,其中包含以下数据: file.log: 2014-03-13 US Texas 334 4.985 2014-03-13 US Minnesota 534 6.544 日志文件不是以制表符分隔的,因为有些字段是以制表符分隔的,有些字段不是 我怎样才能把它放进蜂箱里 配置单元表架构为: 创建表文件dateFact字符串、country字符串、state字符串、id int、value字符串 如何使用Python和/或Hadoop命令将日志文件加载到
2014-03-13 US Texas 334 4.985
2014-03-13 US Minnesota 534 6.544
日志文件不是以制表符分隔的,因为有些字段是以制表符分隔的,有些字段不是
我怎样才能把它放进蜂箱里
配置单元表架构为:
创建表文件dateFact字符串、country字符串、state字符串、id int、value字符串
如何使用Python和/或Hadoop命令将日志文件加载到配置单元表中
谢谢 这个问题可能是重复的 请检查这个和这个 根据以上两个链接,您不能有多个分隔符,不支持 但是有一个解决办法。它可以通过使用RegExSerde来实现
您需要为您的业务需求找出一个正则表达式模式,并将其保存在serde属性中 这个问题可能是重复的 请检查这个和这个 根据以上两个链接,您不能有多个分隔符,不支持 但是有一个解决办法。它可以通过使用RegExSerde来实现
您需要为您的业务需求找出一个正则表达式模式,并将其保存在serde属性中 使用RegexSerDe,您可以使用\s+匹配多个空格类型单空格、多空格和制表符 我面前没有要测试的hive实例,但您应该从下面的代码中了解这一点
CREATE TABLE file.log (
dateFact STRING,
country STRING,
state STRING,
id STRING,
value STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([0-9]{4}-[0-9]{2}-[0-9]{2})\s+(\w+)\s+(\w+)\s+(\d+)\s+([\d.]+)",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s"
)
STORED AS TEXTFILE;
使用RegexSerDe,您可以使用\s+匹配多个空格类型单空格、多空格和制表符 我面前没有要测试的hive实例,但您应该从下面的代码中了解这一点
CREATE TABLE file.log (
dateFact STRING,
country STRING,
state STRING,
id STRING,
value STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([0-9]{4}-[0-9]{2}-[0-9]{2})\s+(\w+)\s+(\w+)\s+(\d+)\s+([\d.]+)",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s"
)
STORED AS TEXTFILE;
好吧,如果分隔符是2个空格呢?如果日志文件中的每个字段都有2个空格,如何将数据加载到配置单元中?请提供详细信息。好的,如果分隔符是2个空格怎么办?如果日志文件中的每个字段都有2个空格,如何将数据加载到配置单元中?请提供详细信息。嗨,如果file.log只是2014-03-13美国德克萨斯334 4.985,如何将其插入配置单元?嗨,如果file.log只是2014-03-13美国德克萨斯334 4.985,如何将其插入配置单元?