草庐IT

元中都

全部标签

hadoop - 配置单元中的 XmlSerde 错误

Whiletryingtoexecutethecreatetablestatementinhivegettingthebelowerror.CREATEEXTERNALTABLEBOOKDATA(>TITLEVARCHAR(40),>PRICEINT>)ROWFORMATSERDE'com.ibm.spss.hive.serde2.xml.XmlSerDe'>WITHSERDEPROPERTIES(>"column.xpath.TITLE"="/CATALOG/BOOK/TITLE/",>"column.xpath.PRICE"="/CATALOG/BOOK/PRICE/")>STOR

sql - 从另一个表创建临时表,包括配置单元中的分区列

我正在使用AS子句从另一个表创建一个临时表,其中我将另一个表的分区列也包含在临时表中,然后出现以下错误。下面是表创建语句,其中col4是表xyz的分区列。并且在运行创建语句时出现以下错误。当我从create语句中删除col4时,它运行良好。错误:Errorwhilecompilingstatement:FAILED:NumberFormatExceptionForinputstring:"HIVE_DEFAULT_PARTITION"(state=42000,code=40000)请帮忙。示例:CREATETEMPORARYTABLEabcSTOREDASPARQUETASSELECT

hadoop - 在配置单元中使用 select 的子查询

团队,我这里有一个问题,有2个临时表a和b,其各自列的值为5和6,例如a.ref1和b.ref2。我正在尝试将这些值放入另一个SQL中,例如"selectc.col1,d.col1,d.col2fromcjoindona.id=d.idwhered.col1=(schema_name).a.ref1ord.col2=(schema_name).b.ref2"我得到类似的错误"Invalidtablealiasorcolumnreference".任何想法,为什么它会这样。我尝试使用select查询来传递临时表值,但这在配置单元中不起作用。任何进一步的帮助将不胜感激

hadoop - 如何在配置单元中的字符串数据类型以外的列中插入空值而不是 NULL

我有一个像这样的创建语句CREATETABLEtemp_tbl(EmpIdString,Salaryint);我想在表中插入一个员工ID和一个空白值。所以我所做的是insertoverwritetabletemp_tblselect'013'asEmpId,''asSalaryfromtbl;hive>select*fromtemp_tbl;OK013NULL但预期的结果是hive>select*fromtemp_tbl;OK013NULL--->BlankinsteadofNULL也试过用“”。我仍然把它当作NULL而不是空白3.试图创建具有序列化属性的表CREATETABLEtem

hadoop - 在配置单元中的移动窗口函数上执行 collect_set 时只保留不同的行

假设我有一个包含3行的配置单元表:merchant_id、week_id、acc_id。我的目标是每周收集前4周内的唯一客户,我正在使用移动窗口来执行此操作。我的代码:创建测试表:CREATETABLEtable_test_test(merchant_idINT,week_idINT,acc_idINT);INSERTINTOTABLEtable_test_testVALUES(1,0,8),(1,0,9),(1,0,10),(1,2,1),(1,2,2),(1,2,4),(1,4,1),(1,4,3),(1,4,4),(1,5,1),(1,5,3),(1,5,5),(1,6,1),(

hadoop - 将数据插入配置单元中的分区外部表时出错

我一直在尝试在配置单元外部表中实现动态分区。我在AzureDataLakegen2文件系统(支持HDFS)中有一些Parquet文件。我已按照以下步骤操作:创建一个临时外部表(路径:tempdata有parquet文件)createexternaltabletemp(astring,bstring,cdouble,ddouble)STOREDASPARQUETLOCATION'abfs://xyz@storage_account.dfs.core.windows.net/wheeler/tempdata';设置配置单元属性sethive.exec.dynamic.partition=t

hadoop - 将普通列转换为配置单元中的分区列

我有一个包含3列的表格。现在我需要将其中一列修改为分区列。有没有可能?如果没有,我们如何向现有表添加分区。我使用了以下语法:创建表t1(enoint,enamestring)行格式分隔字段以'\t'结尾;将本地数据“/....路径/”加载到表t1中;改变表t1添加分区(p1='india');我收到错误.........有人知道如何向现有表添加分区......吗?提前致谢。 最佳答案 我不认为这是直接可能的。Hive将不得不完全重新排列和拆分HDFS中的文件,因为添加分区会强加一个新的目录结构。我建议您只需创建一个具有所需架构和分区

python - 在配置单元中使用 python udf 时如何查询多列?

我正在尝试执行此查询:addFILE/home/user1/test/test_udf.py;SELECTa.hash_code,col2FROM(SELECTtransform(col2,col3)using'pythontest_udf.py'ashash_code,col2FROMsample_table)a;我能够使用udf成功生成hash_code,但另一列(col2)被填充为NULL。示例输出:sjhfshhalksjlkfj128798172jasjhasNULLajsdlkja982988290819189089089889NULLjhsad817982mnsandkj

arrays - 从配置单元中的非嵌套数据创建嵌套数据

有什么方法可以从未嵌套的数据在配置单元中创建嵌套数据例子:源表idzip_code1231234512323456123567892341234523499999看起来像这样idzipcode12312345,23456,5678923412345,99999请注意,一个id的邮政编码数量可能会有所不同 最佳答案 selectid,concat_ws(',',collect_set(zip_code))aszipcodefromyour_tablegroupbyidcollect_set()将删除zip_code集合中的重复项。如果

hadoop - 跳过配置单元中的连字符

我在HIVECLI中执行了一个查询,它应该生成一个外部表。“如果不存在则创建外部表hassan(代码int,area_namestring,male_60_64结构,male_above_65结构)行格式分隔字段由'\t'终止;"它工作正常,但如果我用“-”代替“_”,我会遇到错误。“如果不存在则创建外部表hassan(代码int,area_namestring,male-60-64STRUCT)行格式分隔字段由'\t'终止;”如有任何帮助,我们将不胜感激。 最佳答案 Addy的回答已经提供了如何在列名中使用连字符的示例。根据文档,