草庐IT

hadoop - 删除配置单元分区的外部表但保留分区

使用外部配置单元表时,有没有一种方法可以删除目录中的数据,但通过查询保留分区。请注意我不想删除表并重新创建它。我只想清空底层文件夹并重新开始一个过程。我的表很大,按年、月、日和小时分区,手动重新创建分区需要很多时间。谢谢 最佳答案 truncatetable...删除所有数据。truncatetablepartition(...)删除特定分区的数据。保留目录结构。首先应该将外部表转换为管理表,例如altertabletsettblproperties('EXTERNAL'='FALSE');完成后,我们可以将其转换回来alterta

hadoop - oozie Sqoop 操作无法将数据导入配置单元

我在执行ooziesqoop操作时遇到问题。在日志中,我可以看到sqoop能够将数据导入临时目录,然后sqoop创建配置单元脚本来导入数据。将临时数据导入配置单元时失败。在日志中我没有收到任何异常。下面是我正在使用的sqoopAction。hcat.metastore.uri${HIVE_THRIFT_URL}hcat.metastore.principal${KERBEROS_PRINCIPAL}${jobTracker}${nameNode}/tmp/hive-oozie-site.xmloozie.hive.defaults/tmp/hive-oozie-site.xmljob-

hadoop - 如何在配置单元中获取复杂数据类型列的长度

我有一个配置单元表包含array和map类型的列,我想过滤记录,其中array/map列包含超过N元素,该怎么做?DDL:createtabletest(idstring,v1array,v2map)查询:select*fromtestwherelength(v1)>10orlength(v2)>10 最佳答案 select*fromtestwheresize(v1)>10orsize(v2)>10演示createtabletest(idstring,v1array,v2map);insertintotestselect1,arra

json - 配置单元 : How to explode a JSON column embedded in a CSV file?

从一个CSV文件(带有一个标题和一个竖线分隔符)我得到了以下两个包含一个JSON列(里面有一个集合)的内容,如下所示:第一种情况(使用没有名称的JSON集合):ProductId|IngestTime|ProductOrders9180|20171025145034|[{"OrderId":"299","Location":"NY"},{"OrderId":"499","Location":"LA"}]8251|20171026114034|[{"OrderId":"1799","Location":"London"}]第二种情况(带有一个名为“Orders”的JSON集合):Prod

hadoop - 我的配置单元表有类型为 map<String,String> 的列。我想分解 map 并将它们转置为列而不是行

以下是我的hive表结构data_dtstringidstringrecordsmap按data_dt划分。当我运行查询时,selectid,key,valfromtestlateralviewexplode(records)taskey,val根据Hive文档,我的maprecords被分解成数据行。我需要按列而不是按行的分解数据。例如:上面的查询会产生我abc|k1|v1abc|k2|v2abc|k3|v3zxc|k1|v1zxc|k3|v3相反,我需要它如下id|k1|k2|k3abc|v1|v2|v3zxc|v3|/N|v3我知道explode是一个UDTF,因此它将结果转储为

performance - 提高配置单元jdbc的性能

有谁知道如何提高HIVEJDBC连接的性能。详细问题:当我从HiveCLI查询配置单元时,我会在7秒内得到响应,但从HIVEJDBC连接中我会在14秒后得到响应。我想知道是否有任何方法(配置更改)可以提高通过JDBC连接进行查询的性能。提前致谢。 最佳答案 使用连接池帮助我提高了配置单元JDBC的性能。在Hive中,当我们查询时会发生许多转换,因此使用连接池中的现有连接对象而不是打开新连接并为每个请求关闭是非常有帮助的。如果遇到相同问题的其他人会发布详细答案,请告诉我。 关于perfor

hadoop - 配置单元 : How to execute a query from a file and dump the output in hdfs

我可以从sql文件执行查询并将输出存储在本地文件中使用hive-f/home/Prashasti/test.sql>/home/Prashasti/output.csv此外,我可以使用以下方法将配置单元查询的输出存储在hdfs中:insertoverwritedirectory'user/output'select*fromfolders;有什么方法可以从sql文件运行查询并将输出也存储在hdfs中吗? 最佳答案 只需要修改sql文件,将insertoverwritedirectory'user/output'添加到查询的前面。

hadoop - 可以将数据多次插入到分桶的配置单元表中

我有一个分桶的Hive表。它有4个桶。CREATETABLEuser(user_idBIGINT,firstnameSTRING,lastnameSTRING)COMMENT'Abucketedcopyofuser_info'CLUSTEREDBY(user_id)INTO4BUCKETS;最初我使用以下查询将一些记录插入到该表中。sethive.enforce.bucketing=true;insertintouserselect*fromsecond_user;执行此操作后,在HDFS中,我看到在该表目录下创建了4个文件。我再次需要将另一组数据插入到用户表中。所以我运行了以下查询。

hadoop - 如何将键值对加载到配置单元表中?

下面是我的数据集:Junname="balaji"id=101Marname="kumar"id=102创建表:createtablesample(monthstring,namestring,idint)rowformatdelimitedfieldsterminatedby'space'mapkeysterminatedby'=';结果:select*fromsample;JUNname="balaji"NULLMarname="kumar"NULL预期结果:JUNbalaji101Markumar102请帮我解决这个问题。 最佳答案

java - 如何使用java在配置单元中创建表?

我想使用Java在配置单元中创建一个表。使用以下方式来做到这一点:publicclassHiveCreateTable{privatestaticStringdriverName="com.facebook.presto.jdbc.PrestoDriver";publicstaticvoidmain(String[]args)throwsSQLException{//Registerdriverandcreatedriverinstancetry{Class.forName(driverName);}catch(ClassNotFoundExceptione){//TODOAuto-g