草庐IT

Hadoop 和 Hive 优化

我需要以下场景的帮助:1)Memo表是hive中的源表。共有5493656359条记录,其描述如下:load_tstimestampmemo_banbigintmemo_idbigintsys_creation_datetimestampsys_update_datetimestampoperator_idbigintapplication_idvarchar(6)dl_service_codevarchar(5)dl_update_stampbigintmemo_datetimestampmemo_typevarchar(4)memo_subscribervarchar(20)mem

hadoop - 使用 Hive 向 HDFS 插入数据

假设我们有一个外部Hive表指向hdfs目录中的CSV文件。那么当使用hive在此表上插入一个新行时发生了什么:插入会导致整个表重写吗?或者完全重写数据所在的hdfsblock?或者只是将新行附加到文件末尾?更新操作的相同问题提前致谢! 最佳答案 回答您的问题,认为您正在使用插入语句而不是对文件使用INSERTOVERWRITE。不,插入将使用您插入的数据创建一个新文件不,只会插入新文件不对现有文件进行追加即使您使用INSERTINTO并插入一些文件,这些新文件也会出现并位于HDFS中的特定目录中,而不会影响现有文件。如果您正在使用

sql - 加载到 Hive 表中仅将整个数据导入第一列

我正在尝试将Hive数据从一台服务器复制到另一台服务器。通过这种方式,我将hive数据从server1导出到CSV中,并尝试将该CSV文件导入到server2中的Hive中。我的表包含以下数据类型:双数字符串数组这是我的命令:导出:hive-e'select*fromsample'>/home/hadoop/sample.csv导入:loaddatalocalinpath'/home/hadoop/sample.csv'intotablesample;导入Hive表后,整行数据仅插入第一列。我该如何克服这个问题,或者是否有更好的方法将数据从一台服务器复制到另一台服务器?

hadoop - 如何将 Hive 表导出到包含标题的 CSV 文件中?

我使用此Hive查询将表导出到CSV文件中。hive-fmysql.sqlrowformatdelimitedfieldsterminatedby','select*fromMydatabase,Mytablelimit100"cat/LocalPath/*>/LocalPath/table.csv但是,它不包括表列名。如何在csv中导出列名?showtablename? 最佳答案 您应该在选择查询之前添加sethive.cli.print.header=true;以将列名作为输出的第一行。输出看起来像Mytable.col1,My

hadoop - Spark-Sql 不修复 hive 表返回 0 条记录

我正在做以下事情:使用ALTERTABLE...DROPIFEXISTSPARTITION(col='val1')删除配置单元分区hdfsdfs-rm-rpath_to_remove运行创建此分区(col='val1')并在HDFS文件夹下创建avro文件的摄取程序`sqlContext.sql("selectcount(0)fromtable1wherecol='val1'").show返回0直到MSCKREPAIRTABLE。在spark-sql中再次看到数据是否必须执行修复步骤?请指教。 最佳答案 如果是外部表,是的,需要修表

scala - Spark JDBC 与 HIVE - Scala

我在HIVE中有一个示例表(stuends1),我想使用JDBC从Spark连接它(因为Hive在AWS中,而不是在同一个集群中)。我只是尝试使用以下代码defmain(args:Array[String]):Unit={//Class.forName("org.apache.hive.jdbc.HiveDriver").newInstance()valconf=newSparkConf().setAppName("SOMEAPPNAME").setMaster("local[*]")valsc=newSparkContext(conf)valspark=SparkSession.bu

hadoop - pySpark 如何将 TempView 表加入到 Hive 表

我有一个注册为tempView的dataFrame和一个要加入的Hive表df1.createOrReplaceTempView("mydata")df2=spark.sql("Selectmd.column1,md.column2,mht.column1\frommydatamdinnerjoinmyHivetablemhtonmht.key1=md.key1\wheremht.transdatebetween'2017-08-01'and'2017-08-10'")这个连接是如何发生的。如果Hive表中的数据量很大,spark会尝试将hive表读入内存或者决定将tempView表写

java - 从 java 程序中的 hive2 json-serde 表中获取数据时出现异常

我正在使用https://github.com/rcongiu/Hive-JSON-Serde这个jsonserde。我在将jsonserdejar添加到控制台后进行了查询,它返回了数据。我正在尝试用Java代码做同样的事情,但它没有发生。hive>useoracle_json;OKTimetaken:0.858secondshive>addjarjson-serde-1.3.6-jar-with-dependencies.jar;Addedjson-serde-1.3.6-jar-with-dependencies.jartoclasspathAddedresource:json-s

hadoop - Hive alter table change column name 将 'NULL' 赋予重命名的列

我曾尝试将表中的现有列重命名为新列。但在名称更改后,新列只给我“NULL”值。Parquet中表的存储格式。例如,'user'isacolumnin'Test'tableofstringdatatype.Insertedasamplerecordwithvalueas'John'.SelectuserfromTest;Result:JohnIhaverenamed'user'to'user_name'withoutchanginganydatatype.ALTERTABLETestCHANGEuseruser_nameString;Selectuser_namefromTest;Res

java - 需要使用 Jdbc 程序访问 Hive 元数据表

需要使用Jdbc程序访问Hive元数据表。Metastore到底存储了什么,我如何访问它?我试过这样做:sql="showtables";Statementstmt=con.createStatement();System.out.println("Running:"+sql);res=stmt.executeQuery(sql);while(res.next()){System.out.println(res.getString(1));}所以我得到了表列表,但我想知道该信息存储在哪个表中,以便我可以直接从该表中选择而不是触发Hive命令。我的Metastore也是在PostGreS