草庐IT

Spark-Hive

全部标签

hadoop - 从 Hive 的列表中查找最大值

我需要从HIVE的列表中找到最大值。例如:如果我有值(value)观[5,4,3]在列表中我需要得到5。max(list_name)无效。有没有解决方法。 最佳答案 你可以看到这个doc在你的情况下,如果你有一个表名example|id|arr||1|[1,2]||2|[3,4]|如果你想得到的结果|id|max_arr||1|2||2|4|试试这个SQLSELECTid,max(arr_val)asmax_arrFROMexampleLATERALVIEWexplode(arr)arrtableASarr_valgroupbyid

hadoop - NiFi 或 Streamsets 从 HBase 读取,加入平面文件中的内容并写入 Hive

试图弄清楚是否可以使用apacheNiFi或Streamsets实现连接。这样我就可以定期从HBase读取数据,与其他表连接并将少量字段写入Hive表。或者有没有其他工作流管理器工具支持这个操作? 最佳答案 我不熟悉Streamsets,但我会尽力帮助NiFi。您的平面文件是静态的吗?如果是这样,您是否希望直接替换值?您应该能够使用ReplaceTextWithMapping处理器。如果不是直接替换,您可以预填充DistributedMapCache使用平面文件中的值,然后使用FetchDistributedMapCache对HBa

hadoop - Hive 表列日期格式

我正在尝试创建一个字段类型为date的表。我只存储年份字段。所以我试图将其格式化为YYYY。但是hive没有接受格式命令。我的陈述如下...CREATETABLEIFNOTEXISTSla1(vendorvarchar(20),countryvarchar(25),name1varchar(256),cityvarchar(40),districtvarchar(40),poboxvarchar(40),poboxpostelcodevarchar(20),createdondateformat'YYYY')timestamp字段类型也不起作用关于如何实现这个有什么建议吗?谢谢

hadoop - 在单节点上运行 Spark on YARN

我正在学习一些数据科学,我正在尝试发现和理解与之相关的各种工具。到目前为止,我已经在MacOS上成功安装了Hadoop2.8.0,现在我想让Spark2.1.1也能正常工作。我知道Spark不一定需要Hadoop环境才能工作,但我也知道让它在YARN上运行对于与其他应用程序共享数据很有用。在网上阅读了不同的指南和建议后,这就是我所做的:在Hadoop配置文件中,我在yarn-site.xml中添加:yarn.nodemanager.aux-servicesmapreduce_shuffleyarn.nodemanager.aux-services.mapreduce.shuffle.c

hadoop - Hive:如何转换毫秒时间戳?

我正在尝试使用HIVEUDF(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions)从Sparklyr中正确读入一些时间戳。不幸的是,我无法正确解析以下时间戳:unix_timestamp('2011-03-01T00:00:04.226Z','yyyy-MM-ddThh:mm:ss.SSS')返回NA..有什么想法吗?这里的正确模式是什么?谢谢! 最佳答案 你需要引用T和Zhive>se

scala - 为什么我的 Spark 应用程序无法使用 "object SparkSession is not a member of package"进行编译,但 spark-core 是依赖项?

我是spark开发的新手,正在尝试在redhatlinux环境中使用sbt构建我的第一个spark2(scala)应用程序。以下是环境详细信息。CDHVersion:5.11.0ApacheSpark2:2.1.0.cloudera1ScalaVersion:2.11.11JavaVersion:1.7.0_101申请代码:importorg.apache.spark.sqlimportorg.apache.spark.sql.SparkSessionimportorg.apache.spark.sql.types._importorg.apache.spark.sqlobjectMy

sql - Hive:需要指定分区列,因为目标表已分区

我想知道在Hive中是否可以将未分区的表插入到已已分区的表中。第一张表如下:hive>describeextendeduser_ratings;OKuseridintmovieidintratingintunixtimeintDetailedTableInformationTable(tableName:user_ratings,dbName:ml,owner:cloudera,createTime:1500142667,lastAccessTime:0,retention:0,sd:StorageDescriptor(cols:[FieldSchema(name:userid,typ

json - 为嵌套的 JSON 数据创建 Hive 表

我无法将嵌套的JSON数据加载到Hive表中。有人可以帮我吗?以下是我尝试过的:示例输入:{"DocId":"ABC","User1":{"Id":1234,"Username":"sam1234","Name":"Sam","ShippingAddress":{"Address1":"123MainSt.","Address2":null,"City":"Durham","State":"NC"},"Orders":[{"ItemId":6789,"OrderDate":"11/11/2012"},{"ItemId":4352,"OrderDate":"12/12/2012"}]}}

eclipse 中的 java.lang.ClassNotFoundException : org. apache.hadoop.hive.jdbc.HiveDriver

我还添加了usr/local/share/hadoop/mapreduce/*jars、usr/local/hadoop/common、hive-exec-xxx.jar、hive-metastore-xxx.jar和hive-的所有jars文件jdbc-xxx.jar.Hive终端运行良好。我的代码是:privatestaticStringdriverName="org.apache.hadoop.hive.jdbc.HiveDriver";try{Class.forName(driverName);Connectioncon;con=DriverManager.getConnect

hadoop - 使用大型数据集在 Spark 上训练 BloomFilter

我正在尝试为数据帧中的大量字符串创建布隆过滤器-约1.2亿。每个字符串平均有20-25个字符,总数据大小超过我们默认的spark.driver.maxResultSize1GB。我不想更改maxResultSize,因为将来输入数据的大小增加时我将不得不再次更改它。在Spark中,我是否可以通过调用BloomFilter.putString()以小块流式传输数据帧中的数据并训练BloomFilter?我也尝试过使用Dataset.toLocalIterator()但由于源数据集的性质,我不得不将它合并为100个大分区,使得这100个分区中的每一个都太大而无法容纳在驱动程序内存中。作为最