草庐IT

record_date

全部标签

date - Hive 数据类型混淆

我有大量数据,其中一个字段类似于WedSep1519:17:44+01002010,我需要将该字段插入到Hive中。我为选择数据类型而烦恼。我尝试了时间戳和日期,但从CSV文件加载时得到空值。 最佳答案 数据类型是字符串,因为它是文本。如果你想转换它,我建议使用TIMESTAMP。但是,您需要在加载数据时或之后(甚至更好)自己进行此转换。要转换为时间戳,可以使用以下语法:CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(,'FORMAT'))asTIMESTAMP)虽然您的格式看起来很复杂。我的建议是将它作为字符串

hadoop - 在 cloudera impala 1.2.3 中使用 date_sub() udf 从 View 查询时出现连接重置错误

我已经编写了一个查询来在Impala中创建一个View。该View包含一个字段record_date,它是格式为yyyy-MM-ddhh:mm:ss的字符串数据类型。在尝试执行使用date_sub('2014-01-3000:00:00',1)提取先前日期记录的查询时,我收到如下错误:错误:与impalad通信时出错:TSocket读取0个字节。如果我尝试对创建的表而不是View执行相同的查询,我会得到正确的输出。感谢任何帮助。谢谢 最佳答案 这是一个错误,请升级到最新版本的Impala,因为它似乎从1.2.3开始就已修复,这是很旧

mongodb - 带有 $date 的 mongo.input.query 不过滤输入到 hadoop

我有一个分片输入集合,我想在将其发送到我的hadoop集群以进行mapreduce计算之前对其进行过滤。我的$hadoopjar-命令中有这个参数mongo.input.query='{_id.uuid:"device-964693"}'并且有效。输出不会mapreduce任何不满足此查询的数据。但这不起作用:mongo.input.query='{_id.day:{\\$lt:{\\$date:1388620740000}}}'没有数据作为输出产生。1388620740000表示日期WedJan01201423:59:00GMT+0000(GMT)。该设置使用的是hadoop2.2、

hadoop - 解释 "There can be many keys (and their associated values) in each partition, but the records for any given key are all in a single partition"

“每个分区中可以有许多键(及其相关值),但任何给定键的记录都在一个分区中。”这是一本著名的hadoop教科书的一行。我没有理解它的第二部分的全部含义,即“但是任何给定键的记录都在一个分区中。”这是否意味着单个键的所有记录都应该在单个分区或其他地方。 最佳答案 buttherecordsforanygivenkeyareallinasinglepartition如果您有一个键,则该键及其相关联的值必须位于单个分区上。有时该值可能相当大。但这是对值大小的限制。它必须足够小以适合单个分区。请注意,键和值上可能还有其他常量,具体取决于您用于

csv - 最佳实践 : how to handle data records with changing "schema"/ "columns"

这是一个最佳实践问题。我们的设置是一个hadoop集群,将(日志)数据存储在hdfs中。我们获取csv格式的数据,每天一个文件。在hadoop中对这些文件运行MR作业没问题,只要文件的“架构”(尤其是列数)不变即可。但是,我们面临的问题是,我们要分析的日志记录最终会发生变化,因为可能会添加或删除列。我想知道你们中的一些人是否愿意分享针对此类情况的最佳实践。我们目前能想到的最好的方式是将数据存储为json格式而不是csv。但是,这会增加(至少增加一倍)所需的存储空间。我们还遇到了ApacheAvro和ApacheParquet,并且刚刚开始对此进行研究。欢迎就此问题提出任何想法和意见。

mysql - Oracle 11g 对比 MySQL 对比 Hadoop :- benchmarking for 10^6 to 10^9 records

我需要针对10^6到10^9条记录(MySQL中的行)对Oracle11g、MySQL和Hadoop进行基准测试。将使用实时数据全天候进行广泛的数据挖掘查询。我想知道哪个数据库会更好,尤其是在某些实际统计数据方面。future几个月的数据肯定会超出这个范围。是否有针对此的任何开源基准测试工具?或者谁有一些有用的数据?提前致谢。编辑:-Hadoop不是数据库。它是一个分布式文件系统。让我更详细地解释一下我的要求。这就是我现在所拥有的,我的所有数据都在mysql中,我计划将其导出到hadoop并在其上运行我的数据挖掘算法。算法结束后,最后的结果会发送到mysql更新当前数据。我现在真的不能

PostgreSQL | EXTRACT / DATE_PART | 获取时间的年月日等字串

extractEXTRACT函数是PostgreSQL中用于从日期和时间类型中提取特定部分(如年、月、日、小时等)的函数。格式EXTRACT(fieldFROMsource)--field参数是要提取的部分,例如YEAR、MONTH、DAY、HOUR等。--source参数是包含日期或时间的表达式。示例例如,要从当前日期时间中提取年\月\日\,可以使用以下查询:SELECT EXTRACT(YEARFROMCURRENT_TIMESTAMP) AScurrent_year, EXTRACT(MONTHFROMCURRENT_TIMESTAMP) AScurrent_month, EXTRACT

date - 有两个不同的字符串代表两个不同的配置单元表中的日期,我想用它们来加入

所以我在Hadoop集群中的Hive中有两个外部表。一个表有一个(日期字符串)列,格式为'2019-05-2411:16:31.0'另一个有(dateSTRING)列,格式为'23/May/2019:22:15:04',它们都是字符串。我需要将它们转换为相同类型的日期格式并使用它们来连接这两个表。您将如何解决这个问题并在Hive中解决所有问题?可能吗?我是Hadoop的菜鸟,对Hive的可能性还不是很了解。Ps:我的hive版本不支持!hive--version命令来检查我正在使用的版本,所以我不太确定如何理解我正在使用的版本。不是我的集群,我也不是根用户。

date - 如何在 Hadoop Hive 中给定时间戳获取一周第一天的日期?

除了编写自定义UDF来支持此问题外,是否有任何已知的方法可以实现此目的?我目前正在使用Hive0.13。 最佳答案 从Hive1.2开始,你也可以这样做:selectnext_day(date_sub('2019-01-01',7),'MON')输出:2018-12-31 关于date-如何在HadoopHive中给定时间戳获取一周第一天的日期?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

java - Hadoop 中的默认 Record Reader,全局或本地字节偏移量

我们知道Hadoop中的映射器(以及缩减器)只能处理键值对作为输入和输出。RecordReader是将原始输入从文件转换为键值对的东西。您可以编写自己的“RecordReader”。Hadoop提供的默认RecordReader称为TextInputFormat,它读取文本文件的行。它为拆分的每条记录发出的键是读取的行的字节偏移量(作为LongWritable),值是行的内容直到终止\n字符(作为文本对象)。我们还知道每个输入文件拆分的映射器由平台实例化。假设有一个巨大的文件F存储在HDFS上,它的拆分存储在几个不同的节点上;文件F是行分隔的,并且正在由一些使用默认RecordRead