草庐IT

test_hive

全部标签

sql - 在 Hive SQL 中,使用分区键基于另一个表中的列创建表

我想根据现有表中的列创建一个新表,在配置单元中添加一个新的分区列。我想在hivesql中实现这个目标。除了下面的sql或者使用kettle之类的ETL工具还有没有别的办法createtableifnotexiststable_name(col1,col2,col3,……,coln)partitionedbydt;其中col1到coln来自已经存在的旧表,dt是新添加的partitionkey。因为旧表太大,可能有几百列,罗列出来会很累。但是,下面的sql显示语法错误:createtableifnotexiststable_namelikeolder_table_namepartitio

hadoop - 如何从 hive 或 impala 读取 Hbase 当前和以前版本的数据?

我想从Hive或Impala读取Hbase当前和以前版本的数据。在我最初的研究中,我发现只能从Hive访问当前版本。那么,目前有什么方法可以从hive或Impala中检索旧版本吗? 最佳答案 在Hive的情况下:请看this似乎不可能在Hive中获得同一单元格的不同版本(即使Hbase具有同一单元格的多个版本),它总是返回具有最新时间戳的单元格。我相信我们可以从战术上解决这个问题。我们可以将以前的版本附加到Hbase行键或者作为单独的单元格(名称,值)如果是Impala:请看limitations节

hadoop - hive elasticsearch外部表创建

当我在ElasticSearchHandler存储的hive中创建外部表时,它可以正常工作:*CREATETABLEtest(daySTRING,idCustSTRING)STOREDBY'org.elasticsearch.hadoop.hive.EsStorageHandler'TBLPROPERTIES('es.resource'='test/test','es.mapping.names'='day:@timestamp','es.nodes'='localhost');*当我向其中插入数据时,它起作用了但是当我尝试查询它时,出现错误:异常java.io.IOException

hadoop - Hive:如果我删除当前正在查询的文件会怎样?

假设我们有一个Hive表作为这样的目录存储在HDFS上:data/|--file1|--file2|--file3如果我对该目录开始长时间查询然后删除其中一个文件会怎样?我可以想到3种情况:文件描述符在开始时打开,数据一直保留到查询结束,即使文件路径不再可用于新查询。Hive会记住文件路径,如果找不到已删除的文件,查询就会失败。Hive不记住文件路径,只接受当前目录中的文件。如果Hive的行为类似于(2),并且在查询期间删除文件是不安全的,从被查询目录中删除旧数据的正确方法是什么? 最佳答案 如@Shankarsh所述,Hive尝试

regex - 文件名的一部分作为 Hive 表中的列

我想将文件名的第一部分作为Hive表中的一列Myfilenameis:20151102114450.46400_Always_1446482638967.xml我在MicrosoftAzure的Hive中使用正则表达式编写了一个查询(查询下方)以获取它的第一部分,即20151102114450但是当我运行查询时,我得到的输出为20151102164358selectCAST(regexp_replace(regexp_replace(regexp_replace(CAST(CAST(regexp_replace(split(INPUT__FILE__NAME,'[_]')[2],'.x

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)以获得此精细权限。