草庐IT

hadoop - hive理解表的创建

我正在服用mooc.它告诉我们使用以下命令将一些文件从我们的PC上传到hdfsazurestorageblobuploadlocal_pathcontainerdata/logs/2008-01.txt.gz我也是这样做的。后来当我在PUTTY安全shell中键入以下命令时,我能够看到该文件hdfsdfs-ls/data/logsFound6items-rwxrwxrwx13319412016-03-0315:56/data/logs/2008-01.txt.gz-rwxrwxrwx13319412016-03-0315:58/data/logs/2008-02.txt.gz-rwxr

scala - 用于 Spark 集成测试的 Hive 配置

我正在寻找一种方法来配置Hive以进行SparkSQL集成测试,以便将表写入临时目录或测试根目录下的某个位置。我的调查表明这需要同时设置fs.defaultFS和hive.metastore.warehouse.dir之前HiveContext被build。只需设置后者,如本answer中所述不适用于Spark1.6.1。valsqlc=newHiveContext(sparkContext)sqlc.setConf("hive.metastore.warehouse.dir",hiveWarehouseDir)表元数据位于正确的位置,但写入的文件位于/user/hive/wareho

hadoop - 执行错误,从 org.apache.hadoop.hive.ql.exec.mr.MapRedTask 返回代码 1 (state=08S01,code=1)

我已经启动了metastore和hiveserver2#./hive--servicemetastore#./hive--servicehiveserver2当我执行以下查询时#./beeline-ujdbc:hive2://192.168.0.10:10000-e'selectcount(*)fromtest_tb'--hiveconfhive.root.logger=DEBUG,console--verbose=true抛出以下错误Error:Errorwhileprocessingstatement:FAILED:ExecutionError,returncode1fromorg

hadoop - 在 spark SQL 中加载数据时获取 Hive 表中的空值

将数据从文件加载到配置单元表时,将插入空值。sqlCon.sql("createtablehive_6(idInt,nameString)partitionedby(dateString)rowformatdelimitedfieldsterminatedby','");sqlCon.sql("loaddatalocalinpath'/home/cloudera/file.txt'intotablehive_6partition(date='19July')");sqlCon.sql("select*fromhive_6").show()+----+----+------+|id|na

sql - 如何在 HIVE 中使用 "in"和 "having"子句?

我的数据是这样的:col1col2col3AB3AB1AB2CB1我想获取所有包含col3某些行的col1和col2的唯一组。比如,所有包含“2”的col1和col2组。我想做这样的事情:selectcol1,col2fromsometablegroupbycol1,col2havingcol3=1andcol3=2但我希望它只返回在col3中同时具有1和2实例的组。所以,查询后的结果应该是这样的:col1col2AB我如何在HIVE中表达它?谢谢。 最佳答案 我不知道为什么其他人删除了正确然后几乎正确的答案,但我会备份他们的答案。

hadoop - 将为配置单元中的分区表创建多少映射器和缩减器

我总是对为hive中的特定任务创建多少映射器和缩减器感到困惑。例如,如果block大小=128mb,并且有365个文件,每个文件映射到一年中的某个日期(每个文件大小=1mb)。有基于日期列的分区。在这种情况下,在加载数据期间将运行多少映射器和缩减器? 最佳答案 映射器:映射器的数量取决于各种因素,例如数据在节点之间的分布方式、输入格式、执行引擎和配置参数。另见此处:https://cwiki.apache.org/confluence/display/TEZ/How+initial+task+parallelism+worksMR使

regex - Hive:在字符的第一次出现和最后一次出现之间提取字符串

我有一个Hive表列,其中的字符串由“-”分隔,我需要提取第一次和最后一次出现的“-”之间的字符串+-----------------+|col1|+-----------------+|abc-123-na-00-sf||123-abc-01-sd||123-abcd-sd|+-----------------+Requiredoutput:+-----------+|col1|+-----------+|123-na-00||abc-01||abcd|+-----------+请建议一些正则表达式来提取所需的输出。谢谢 最佳答案

sorting - sort_array 按不同列排序,Hive

我有两列,一列是产品,一列是购买日期。我可以通过应用sort_array(dates)函数对日期进行排序,但我希望能够在购买日期之前对sort_array(products)进行排序。有没有办法在Hive中做到这一点?表名是ClientIDProductDate100Shampoo2016-01-02101Book2016-02-04100Conditioner2015-12-31101Bookmark2016-07-10100Cream2016-02-12101Book22016-01-03然后,为每个客户获取一行:selectclientID,COLLECT_LIST(Produc

sql - 正则表达式删除字符串中单词之间的空格

我正在使用Hive(Hadoop)编写类似SQL的语句。我需要删除字段中的空格。例如,邮政编码可以是XX000XX,我想删除0XX之前的空格到目前为止,我有这个正则表达式:REGEXP_REPLACE(postcode,'[[:space:]]*','')但是好像不行。任何人都可以建议吗? 最佳答案 仅仅做一个简单的(非正则表达式)替换会有什么问题吗?试试这个:REPLACE(postcode,'','')如果您的versionofHive不支持REPLACE(),那么你可以使用:REGEXP_REPLACE(postcode,'\

sql - 多列和多行的 Hive/SQL 计数出现次数

我正在寻找一种计算出现次数的智能方法。这是一个例子:UserIDCityIDCountryIDTagID1000001305100001130610000022071000002408100001140610000214051000021206我想做什么:我想按列计算每个用户值的出现次数。最后,我想要一个表格来显示有多少用户具有不同的特征。结果应该看起来像这样-或多或少Different_CityIDDifferent_CountryIDsDifferent_TagIDs132解释:Different_CityIDs:仅UserID100000具有不同的CityIDDifferent_