草庐IT

搞机分区

全部标签

sql - 使用一条插入语句在多个分区中插入数据

我有表A和表B,其中B是A使用名为X的字段的分区表。当我想从A向B插入数据时,通常会执行如下语句:INSERTINTOTABLEBPARTITION(X=x)SELECTFROMAWHEREX=x现在我想要实现的是能够插入一系列X,比方说x1、x2、x3...我怎样才能在一个语句中实现这一点? 最佳答案 使用动态分区加载:sethive.exec.dynamic.partition=true;sethive.exec.dynamic.partition.mode=nonstrict;INSERTOVERWRITETABLEtable

java - 为分区程序输出单个文件

尝试获得与键数一样多的reducerpublicclassCustomPartitionerextendsPartitioner{publicintgetPartition(Textkey,Textvalue,intnumReduceTasks){System.out.println("InCustomP");return(key.toString().hashCode())%numReduceTasks;}}驱动类job6.setMapOutputKeyClass(Text.class);job6.setMapOutputValueClass(Text.class);job6.set

hadoop - Hive 中的范围分区

Hive是否支持范围分区?我的意思是hive是否支持如下内容:insertoverwritetabletable2PARTITION(employeeIdBETWEEN2001and3000)selectemployeeNameFROMemp10whereemployeeIdBETWEEN2001and3000;其中table2和emp10有两列:员工姓名&员工编号当我运行上面的查询时,我遇到了一个错误:FAILED:ParseExceptionline1:56mismatchedinput'BETWEEN'expecting)near'employeeId'indestination

hadoop - 在 Hive 表中插入覆盖分区 - 值重复

我创建了一个包含非分区表的Hive表,并使用选择查询将数据插入到分区Hive表中。Referedsite通过上面的链接,我的分区表包含重复值。以下是设置这是我的示例员工数据集:link1我尝试了以下查询:link2但是在更新Hive表中的值之后,将EmployeeID为19的Steven的薪水更新为50000。INSERTOVERWRITETABLEUnm_Parti_TrailPARTITION(Department='A')SELECTemployeeid,firstname,designation,CASEWHENemployeeid=19THEN50000ELSEsalaryE

hadoop - 即使使用 Hadoop 自定义分区程序,不同的 key 也会进入 1 个文件

我的一期快用完了。我正在尝试从Reducer获取不同key的不同文件。分区器publicclasscustomPartitionerextendsPartitionerimplementsConfigurable{privateConfigurationconfiguration;@OverridepublicConfigurationgetConf(){returnconfiguration;}publicintgetPartition(Textkey,NullWritablevalue,intnumPartitions){returnMath.abs(key.hashCode())

apache-spark - Spark Streaming to Hive,每个分区的小文件太多

我有一个批处理间隔为2分钟(可配置)的Spark流作业。此作业从Kafka主题读取并创建数据集并在其上应用模式并将这些记录插入到Hive表中。Spark作业在Hive分区中每个批处理间隔创建一个文件,如下所示:dataset.coalesce(1).write().mode(SaveMode.Append).insertInto(targetEntityName);现在传入的数据不是那么大,如果我将批处理持续时间增加到10分钟左右,那么即使我最终也可能只获得2-3mb的数据,这远小于block大小。这是SparkStreaming中的预期行为。我正在寻找有效的方法来进行后处理以合并所有

apache-spark - HadoopPartitions 的 Spark 的默认分区是如何计算的?

我正在阅读JacekLaskowski'sonlinebookaboutApacheSpark,关于分区,他说Bydefault,apartitioniscreatedforeachHDFSpartition,whichbydefaultis64MB我对HDFS不是很熟悉,但是我在复制这个声明时遇到了一些问题。我有一个名为Reviews.csv的文件,它是大约330MB的亚马逊食品评论文本文件。给定默认的64MBblock,我希望ceiling(330/64)=6分区。但是,当我将文件加载到我的SparkShell中时,我得到了9个分区:scala>valtokenized_logs=

hadoop - HIVE中如何提高从非分区表加载数据到ORC分区表的性能

我是Hive查询的新手,我正在寻找从Hive表中检索数据的最佳实践。我们启用了TeZ执行引擎并启用了矢量化。我们想从Hive表进行报告,我从TEZ文档中读到它可以用于实时报告。场景来self的WEB应用程序,我想在UI上显示HiveQuerySelect*fromHive表的结果,但是对于任何查询,在hive命令提示符中至少需要20-60秒,即使hive表有60GB数据。1)谁能告诉我如何通过查询Hive表来显示实时报告并在10-30秒内立即在UI上显示结果2)我们发现的另一个问题是,当我们将未分区表中的数据转储到ORC时,最初我们有一个未分区表指向HDFS中的一个Blob/文件,它的

java - SPARK 分区和 Worker Core 之间有什么区别?

我使用StandaloneSparkCluster来处理多个文件。当我执行驱动程序时,数据在使用它的核心的每个工作人员上进行处理。现在,我已经阅读了有关Partitions的内容,但我不知道它是否与WorkerCores不同。设置核心数和分区数有区别吗? 最佳答案 简单View:分区与内核数当您调用RDD的操作时,为其创建了一个“工作”。因此,Job是提交给spark的工作。作业根据洗牌边界分为“STAGE”!!!每个阶段根据RDD上的分区数进一步划分为任务。所以Task是spark的最小工作单元。现在,这些任务中有多少可以同时执行

hadoop - 将 Dataframe 存储到 spark 中的配置单元分区表

我正在尝试将从kafka主题传入的数据流存储到配置单元分区表中。我能够将dstream转换为数据帧并创建一个配置单元上下文。我的代码看起来像这样valhiveContext=newHiveContext(sc)hiveContext.setConf("hive.exec.dynamic.partition","true")hiveContext.setConf("hive.exec.dynamic.partition.mode","nonstrict")newdf.registerTempTable("temp")//newdfismydataframenewdf.write.mode