草庐IT

spark-hive

全部标签

SQL/HIVE - 不同计数查询 - SELECT COUNT (DISTINCT columns,..) 与 SELECT COUNT(*) 与 DISTINCT 记录的子查询有何不同

在HIVE中,我尝试使用2种方法获取不同行的计数,SELECTCOUNT(*)FROM(SELECTDISTINCTcolumnsFROMtable);SELECTCOUNT(DISTINCTcolumns)FROMtable;两者都产生了不同的结果。第一个查询的计数大于第二个查询。他们的工作方式有何不同?提前致谢。 最佳答案 对您的查询做一点小改动,例如将您的子查询命名为:SELECTCOUNT(*)FROM(SELECTDISTINCTcolumnsFROMtable)myquery;

hadoop - 将 NULL 值从 Hive 导出到 Teradata

我在Hive中有一个表,其中某些列具有NULL值,我正在使用Teradata连接器将该表从Hadoop导出到Teradata。我的问题是NULL值被视为字符串NULL而不是NULL。如何将NULL值直接导出到Teradata?请帮忙。 最佳答案 您是否在导出命令中使用了input-null-string参数?根据documentation:The--input-null-stringand--input-null-non-stringargumentsareoptional.If--input-null-stringisnotspe

java - 用于查找最常出现的列值的 Hive UDAF

我正在尝试创建一个HiveUDAF来查找最常出现的列(字符串)值(不是单个字符或子字符串,使用精确的列值)。假设以下是我的名为my_table的表(破折号用于在视觉上分隔列)。User_Id-Item-Count1-A-11-B-11-A-11-A-11-A-11-C-12-C-12-C-12-A-12-C-1假设我调用以下脚本:SelectUser_Id,findFrequent(*)frommy_tablegroupbyUser_Id我应该得到以下输出,因为对于User_Id=1,A出现了4次而B和C只出现了一次。所以,User_Id=1最频繁的是A。同样,User_Id=2最频繁

java - 如何在 Hortonworks VM 上的 Spark 上运行 .jar?

我是HortonworksVM的新手,我很困惑。我正在尝试在Spark上运行.jar文件。通常我通过运行在Windows上进行本地测试spark-submit--driver-memory4g--classen.name.ClassName%CODE%/target/program.jar但由于我需要Hive,所以我想我应该转移到HortonworksVM以在本地进行测试。现在,我已经通过Hortonworks的Ambari的HDFS文件GUI将我的.jar和输入文件上传到HDFS(到/tmp/my_code目录)。接下来是什么?我也找到了命令行,但是如何从VM的命令行访问HDFS上的

hadoop - Spark :What is the ideal number of reducers

我的数据大约是300G。如果我使用Hadoop对其执行reduce作业,180个reduce插槽就可以了,队列中没有任务等待。如果我使用具有相同数量的reduce槽的Spark执行此操作,它会在洗牌阶段卡住,而如果我使用更多的槽(比如4000)就不会发生这种情况,但这将以低效率结束。有什么我可以做的,比如调整参数,以便我可以使用与hadoop相同的插槽?顺便说一句,我的集群有15个节点,每个节点有12个核心 最佳答案 ShuffleOperationinHadoopandSpark是关于该主题的好读物。一些引述:Eachmaptas

hadoop - 如何循环 Hive 查询并使用循环变量

假设我有两个表Externaltable-etableInternaltable-itable我的表是根据日期分区的。现在,为了每天从etable的数据中填充我的itable,我在hue中使用HiveQuery的工作流和协调器如下所示:ALTERTABLEetableADDIFNOTEXISTSPARTITION(date='${date}')LOCATION'path/date=${date}';INSERTOVERWRITETABLEitablepartition(date='${date}')SELECT*FROMetableWHEREdate='${date}';现在假设每天我

scala - Spark 中的 Hadoop 配置

为了调试,我需要在我的Spark作业中获取当前的Hadooporg.apache.hadoop.conf.Configuration。具体来说,我需要使用org.apache.hadoop.fs.Path#getFileSystem(conf:Configuration)方法获取org.apache.hadoop.fs.FileSystem路径给定一个org.apache.spark.SparkContext,有没有办法获取Configuration? 最佳答案 您可以按照下面的代码设置配置sc.hadoopConfiguratio

hadoop - Hive 中 MetaStore 的主要用途?

我对MetaStore的用途有点困惑。在hive中创建表时:CREATETABLE(column1data_type,column2data_type);LOADDATAINPATHINTOtablemanaged_table;所以我知道这个命令获取HDFS中文件的内容并创建它的MetaData形式并将其存储在MetaStore中(包括每行的列类型,列名,它在HDFS中的位置等)在HDFS文件中)。它实际上并没有将数据从HDFS移动到Hive。但是存储这个元数据的目的是什么?例如,当我使用SparkSQL连接到Hive时,MetaStore不包含HDFS中的实际信息,而只包含元数据。那

hadoop - Spark RDD 和 HDFS 数据 block 的区别

请帮助我理解HDFS的数据block和Spark中的RDD之间的区别。HDFS将数据集分发到集群中的多个节点作为具有相同大小的block,数据block将被复制多次并存储。RDD被创建为并行集合。Parallelized集合的元素是跨节点分布还是存储在内存中处理?和HDFS的数据block有关系吗? 最佳答案 IsthereanyrelationtoHDFS'datablocks?一般不会。他们解决不同的问题RDD是关于分配计算和处理计算失败的。HDFS用于分配存储和处理存储故障。分布是公分母,但仅此而已,故障处理策略明显不同(分别

hadoop - 我们如何将多个 hql 文件传递​​给 hive/beeline?

我想在一个配置单元session中运行file_1.hql和file_2.hql。我怎样才能做到这一点?我正在考虑将这两个文件作为hive-ffile_1.hqlfile_2.hql传递。但是-f只需要一个文件。有什么建议吗? 最佳答案 使用bash怎么样:hive-e"$(catfile1.hqlfile2.hql)" 关于hadoop-我们如何将多个hql文件传递​​给hive/beeline?,我们在StackOverflow上找到一个类似的问题: ht