草庐IT

HIVE-SQOOP

全部标签

hadoop - 日期为 23 :59:59 in hive

我必须提取昨天日期从00:00:00到23:59:59结束之间的记录。我得到了昨天的日期如下selectfrom_unixtime(unix_timestamp()-1*60*60*24,'dd-MMM-yy');但是,我不确定如何在配置单元中到达23:59:59。根据thisSO(1岁)回答,使用配置单元UDF是可以实现的。我想知道是否有一种简单的方法,例如使用内置函数来做到这一点。 最佳答案 我们只需要玩玩unixtimeselectfrom_unixtime(datediff(current_date,'1970-01-01'

java - 创建 spark 客户端失败 : Hive on spark exception

我已将Hive执行引擎更改为SPARK。在执行任何DML/DDL时,我都会遇到异常。hive>selectcount(*)fromtablename;QueryID=jibi_john_20160602153012_6ec1da36-dcb3-4f2f-a855-3b68be118b36Totaljobs=1LaunchingJob1outof1Inordertochangetheaverageloadforareducer(inbytes):sethive.exec.reducers.bytes.per.reducer=Inordertolimitthemaximumnumberof

hadoop - hive 到 Hbase : wrong use case for Spark?

我最近遇到了一个关于将数据从Hive迁移到Hbase的问题。我们项目在cdh5.5.1集群上使用Spark(7个节点在SUSELinuxEnterprise上运行,具有48个内核,每个256GBRAM,hadoop2.6)。作为初学者,我认为使用Spark从Hive加载表数据是个好主意。我正在使用正确的Hive列/HbaseColumnFamily和列映射在HBase中插入数据。我找到了一些关于如何将数据批量插入Hbase的解决方案,例如我们可以使用hbaseContext.bulkPut或rdd.saveAsHadoopDataset(我测试了两者的结果相似).结果是一个功能正常的程

csv - 如何将所有字段转义的 Hive 表导出为 CSV

如何以如下格式导出Hive表:"aaa,aaa","bbbbbb","cccccc"我已经累了:1)创建一个基于初始表的临时表"rowformat...escapedby'\042'"2)使用"insertoverwrite...rowformat...escapeby'\042'"两者都只转义包含一些特殊字符的字段,如下所示:"aaa,aaa",bbbbbb,cccccc我有Hive版本1.1.0-cdh5.5.0 最佳答案 如果您使用的是Hive0.14及更高版本,则可以使用CSVSerde您可以像这样指定serde属性:CRE

hadoop - Hive 授予对数据库范围的权限

是否可以授予hive数据库上的所有表。HBase支持在全局范围、命名空间范围内授予权限并上升到列限定符。我已经在配置单元中配置了基于SQL标准的授权。是否可以直接授予数据​​库而不是特定表或View的权限?将对数据库database_name的选择授予用户user_name在基于hivenativesql标准的授权中是否有实现上述命令的选项。提前致谢。 最佳答案 使用基本身份验证这是不可能的。您需要使用/启用sentry(cloudera)或ranger(hortonworks)以获得此精细权限。

mysql - 从 Hive 表中提取 XML 数据并解析数据

我想从配置单元表中提取特定的列值。该列包含XML数据。如何解析XML数据并从该特定XML列中提取名称和值。我还想将提取的数据插入到另一个Hive表中。 最佳答案 选项1:LanguageManualXPathUDF示例:selectxpath('','/descendant::c/ancestor::b/@id')fromt1limit1;[1","2]选项2:另一种实现方式是Hive-XML-SerDe在这两个选项中,您都需要具备Xpath表达式知识。如果要将提取的数据插入到另一个表中,请使用createtableasselect

hadoop - Hive 中异常的日期时间字符串解析

您好,我正在尝试在配置单元中解析以下字符串"2016-09-30T21:59:58.093Z"我想从中提取年、月、日和小时。我可以使用year()、day()和to_date()函数来提取日期,但我无法从中获取小时数。如果我这样做hour("2016-09-30T21:59:58.093Z")或unix_timestamp("2016-09-30T21:59:58.093Z")它们将返回NULL。有人可以提出建议吗?谢谢 最佳答案 hive>selectfrom_unixtime(unix_timestamp("2016-09-30

hadoop - hive -e 带分隔符

我正在尝试从配置单元表中导出数据,如下所示,但它正在生成以制表符作为分隔符的文件。导出时是否可以指定分隔符为逗号或制表符?hive-e"usedefault;sethive.cli.print.header=true;select*fromtest1;">/temp/test.txt(or.csv)谢谢J 最佳答案 您可以通过管道传输数据并使用简单的sed命令将数据转换为所需的输出格式。下面的sed命令用逗号替换制表符。默认输出是Tab。您可以相应地更改输出。hive-e"usedefault;sethive.cli.print.h

database - Sqoop 是否使用 Reducer?

如果在使用--query参数给出的选择查询中执行连接/聚合,Sqoop是否运行reducer?或者在Sqoop中是否存在同时运行映射器和缩减器的情况?Documentation指定每个映射任务都需要执行查询的副本,结果按Sqoop推断的边界条件进行分区。$sqoopimport\--query'SELECTa.*,b.*FROMaJOINbon(a.id==b.id)WHERE$CONDITIONS'\--split-bya.id--target-dir/user/foo/joinresults在上面的示例中,JOIN如何在首先使用$CONDITIONS对表进行分区的地方发生?

mysql - Sqoop 导出不支持 --columns 参数

我有一个sqoop作业,我只想将HIVE表中的3列导出到只有这3个字段的mysql表中。export--connect--username--password--tabletarget--columns"col1,col2,col3"--export-dir/path/to/source/table请注意,在hive表中,col1、col2、col3之间有一些字段。抛出的错误是IllegalArgumentException,因为Sqoop正在解析hive表中col1和col2之间的字符串字段,我明确试图忽略它,并试图将其存储为时间戳.如有任何建议,我们将不胜感激!