我的表中有几行。这行看起来像:Atribute|---------------|B=10;MB=12;A=33|---------------|MB=16;B=12;A=23|---------------|A=10;MB=23;B=58|等等我只需要在“B=”之后获取数字。对于那个例子,我应该得到:101258为了得到这个结果,我应该写什么选择查询?(查询不应与'MB='和'B='混淆) 最佳答案 hive>selectregexp_extract('B=10\;AB=12\;B=33','(\;|^)B=([0-9]*)',2)
我是Hive新手。我已经在Hive中创建了一个数据库,默认情况下该数据库是在Hive仓库中创建的。当我对HiveWarehouse运行-ls时,我能够看到创建的数据库practice.db。用于创建数据库的查询:createdatabasepracticeCOMMENT'Holdsallpracticetables';我在Hive中创建了另一个数据库。当我针对创建数据库的路径运行-ls命令时,看不到practice_first.db。用于创建数据库的查询:createdatabasepractice_firstCOMMENT'Holdsallpracticetables'LOCATIO
有人可以解释一下如何从配置单元调用shell脚本吗?我对此进行了探索,发现我们必须使用sourceFILE命令从配置单元调用shell脚本。但是我不确定如何使用sourceFile命令从配置单元中调用我的shell脚本。那么有人可以帮我吗?提前致谢。 最佳答案 使用!-ExecutesashellcommandfromtheHiveshell.test_1.sh:#!/bin/shecho"Thismassageisfrom$0file"hive测试.hql:!echoshowingdatabases...;showdatabase
我有一个包含多列的表格。现在我想添加另一列,它的值应该像"CTO1101"+row_idrow_id是表中的现有列。使用以下2个命令会出错。altertabled_studyaddcolumns(cto_idstring);updated_studysetcto_id="CTO1101"+row_id; 最佳答案 改变表d_study添加列cto_id字符串;更新d_studysetcto_id="CTO1101"||row_id;语法取决于数据库系统以及数据类型,因此对于Hive只需搜索串联运算符(“||”或预定义函数)
我正在尝试使用java在配置单元中创建表。我找到了java.sql.SQLException:org.apache.thrift.transport.TTransportException在执行我的代码时。这是我的代码publicvoidcreateTable(StringtableName){try{Statementstat=con.createStatement();StringQueryString="CREATETABLE'"+tableName+"'(User_IdINTEGERNOTNULLAUTO_INCREMENT,"+"User_NameVARCHAR(25),Us
我在一个表上有2个分区,如下所示:hive>showpartitionsalt_part;OKyop=2011yop=2013现在我想为2013年添加一个内部分区。但我收到以下错误。hive>altertablealt_partaddpartition(yop=2013,mop=9);FAILED:SemanticExceptionPartitionspec{yop=2013,mop=9}containsnon-partitioncolumns如果我做错了,请纠正我。我也试过定位....hive>altertablealt_partaddpartition(yop=2013,mop=9
是否可以在hive中同时加载文件和插入值?我有一个简单的表团队:team_idintfnamestringlnamestringnew_recordstring我的加载文件看起来像:ID,fname,lname1,Jimmy,Hendrix2,bob,marley3,Richard,sherman4,Bracia,grimm如果在文件加载期间添加了新的团队成员,我想添加一个"is",这可能吗?如果是这样,我将如何编写查询?谢谢Frostie 最佳答案 这是不可能的。但可能的是从现有表加载并同时插入。所以我通过使用选择和插入来解决这个
假设我从用户那里获取作为多个参数的输入字符串。例如hive-fdemo.txt-hiveconfName="a,b,c,d"我想通过使用SPLIT函数拆分字符串,在WHERE子句中传递这些值(名称)。即seta=SPLIT('${hiveconf:Name}',',');但是SPLIT的输出是一个数组。所以我的问题是如何在WHERE子句中分配数组?例如WHERENameIN(${hiveconf:a}[0:?])谢谢。 最佳答案 你应该使用array_contains用户定义框架:WHEREarray_contains(SPLIT(
如何将现有分区中的小文件合并为一个分区中的一个大文件。例如我有一个表user1,它包含列fname、lname和分区列是天。我已经使用下面的脚本创建了表格CREATETABLEuser1(fnamestring,lnamestring)partitionedBy(dayint);将数据插入分区表后,它将如下所示。fnamelnameday.....................AAAAA20170201....>partition20170201BBBBB20170201...................CCCCC20170202......>partition20170202D
我正在尝试创建一个分区表NYSE_TBL,我正在根据SYMBOLS对它进行分区,我使用了以下查询createtablenyse3(exchange_datastring,stock_datestring,stock_price_opendouble,stock_prce_highdouble,stock_prce_lowdouble,stock_prce_closedouble,stock_volumedouble,stock_price_adj_closedouble)partitionedby(symbolstring)rowformatdelimitedfieldstermina