Spark-SQL
文章平均质量分 59
Spark-SQL
南风知我意丿
“知识,哪怕是知识的幻影,也会成为你的铠甲,保护你不被愚昧反噬”
展开
-
Spark Sql之dropDuplicates去重
Spark Sql之dropDuplicates去重原创 2023-03-03 14:51:39 · 2039 阅读 · 1 评论 -
Spark-SQL UDAF函数(scala)
Spark-SQL UDAF函数(scala)原创 2022-12-30 10:33:59 · 330 阅读 · 0 评论 -
Spark df写Csv精度丢失(csv科学记数法)
当读数据库中的数据,保存为csv时。如果数值型字段的范围过大,在保存为csv用excel、wps打开时会出现精度丢失的问题。Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法;如果数字大于15位,它不仅用于科学计数法表示,还会只保留高15位,其他位都变0。原创 2022-11-18 23:17:32 · 1293 阅读 · 0 评论 -
Spark创建空的df
Spark创建空df原创 2022-11-18 23:02:50 · 1170 阅读 · 0 评论 -
spark dataframe 数据类型转换
下面介绍3种方法来实现spark sql转换数据类型,withColumn (推荐)、selectExpr、sql原创 2022-10-22 20:25:38 · 2718 阅读 · 2 评论 -
Spark临时表tempView的注册/使用/注销/注意事项
Spark中的算子包含transformation算子和action算子,transformation是根据原有RDD创建一个新的RDD,而action则把RDD操作后的结果返回给driver。Spark对transformation的抽象可以大大提高性能,这是因为在Spark中,所有transformation操作都是lazy模式,即Spark不会立即计算结果,而只是简单地记住所有对数据集的转换操作逻辑。这些转换只有遇到action操作的时候才会开始计算。这样的设计使得Spark更加高效。原创 2022-10-17 14:36:40 · 1524 阅读 · 0 评论 -
Spark Sql 转换unix毫秒时间戳
一般unix时间戳是10位精度到秒,但是有时需要13位精确到毫秒。对于13位长度需要转换成可读格式并保留毫秒,在sparksql中没有找到直接的转换方式。转载 2022-09-18 18:35:04 · 1950 阅读 · 0 评论 -
Spark Sql之count(distinct)分析&&学习&&验证
先说结论:spark sql和hive不一样,spark对count(distinct)做了group by优化>在hive中count().>hive往往只用一个 reduce 来处理全局聚合函数,最后导致数据倾斜;在不考虑其它因素的情况下,我们的优化方案是先 group by 再 count ...原创 2022-08-27 18:59:24 · 4883 阅读 · 1 评论 -
Spark/Hive 行列转换
explodedemoexplode(map)lateral view explode(map)explode(array)lateral viewdemolateral view explode统计id出现次数lateral view parse_url_tuple列转行单列转多行LATERAL VIEW explode多列转多行LATERAL VIEW posexplodesplit行转列单行转多列split多行转多列max case when原创 2022-08-24 15:38:18 · 797 阅读 · 0 评论 -
Spark sql之集成Hbase-connectors
1.spark sql使用hbase-connector整合Hbase,实现df写hbase和读取hbase数据为df2.hbase-connector源码编译原创 2022-08-23 15:37:16 · 772 阅读 · 0 评论 -
Spark Sql之join on and和where
sql执行顺序: FROM ON JOIN WHERE GROUP BY WITH CUBE or WITH ROLLUP HAVING SELECT DISTINCT ORDER BY TOP原创 2022-08-01 16:21:49 · 970 阅读 · 0 评论 -
Spark Sql之union
spark中data frame 有union和union all算子,均不去重这点,不像hive中那样,hive sql中union all不去重,union去重原创 2022-08-01 15:57:17 · 2727 阅读 · 0 评论 -
Spark读取多目录
上游任务按类型生成json文件存放到hdfs上,会生成很多目录。下游任务需要读取这些目录下得文件,生成df进行处理。原创 2022-07-29 17:30:12 · 847 阅读 · 0 评论 -
记一次 ERROR scheduler.AsyncEventQueue: Dropping event from queue shared导致OOM
记一次 ERROR scheduler.AsyncEventQueue: Dropping event from queue shared导致OOM。修复 ExectionListenerBus 的内存泄漏的方法,解决当 SparkSession 被 GC‘ ed 时,ExectionListenerBus无法从LiveListenerBus队列删除原创 2022-07-28 19:24:47 · 1287 阅读 · 0 评论 -
df.show()函数算法
假设:show(m),df 0号分区里数据量为n 1.m n时,show取0号分区n条数据,另外取1号分区m-n条数据(不够的话以此类推)原创 2022-07-22 18:34:11 · 1162 阅读 · 0 评论 -
Hive Sql之实际生产中几个复杂场景的
场景一:取当前数据的上一条和下一条,直到取到满足条件的为止.场景二:要计算每天每个员工当月累计的销售额,但是某些员工在某几天是没有销售记录的,怎么处理?场景三:使用HiveQL实现类似滑动窗口的效果.场景四:计算满足一定条件的连续..........转载 2022-07-21 16:05:31 · 635 阅读 · 0 评论 -
Spark 判断DF为空
我有同样的问题,并且测试了3个主要解决方案:当然这3种有效,但是就性能而言,这是我在执行时间方面在我的机器的同一DF上执行这些方法时发现的原创 2022-07-07 17:54:02 · 1250 阅读 · 0 评论 -
Spark-SQL UDF函数
UDF函数原创 2022-07-05 17:20:50 · 557 阅读 · 0 评论 -
Spark SQL之空值Null,NaN判断和处理
Spark SQL空值Null,NaN判断和处理drop,fill,filter.coalease,replace,nullif,nvl原创 2022-07-05 11:30:44 · 7098 阅读 · 0 评论 -
Spark获取DataFrame中列的方式--col,$,column,apply
df("columnName") //在特定数据帧上 col("columnName") //尚未与数据帧关联的通用列col("columnName.field") //提取结构字段col("`a.column.with.dots`") //转义。在列名中$"columnName" //Scala命名列的缩写 expr("a + 1") //由解析的SQL表达式构造的列 lit("ab原创 2022-07-04 16:56:05 · 2425 阅读 · 0 评论 -
Spark DF增加一列
spark sql增加一列方法原创 2022-07-04 16:11:42 · 1308 阅读 · 0 评论 -
Spark sql 常用时间函数
List functioncurrent_date() 当前日期now() 或 current_timestamp() 当前时间datediff(endDate, startDate) 日期相差天数months_between(endDate, startDate) 日期相差月数date_add(startDate, numDays) 日期加N天date_sub(startDate, numDays) 日期减N天add_months(startDa转载 2022-06-26 15:59:11 · 5194 阅读 · 0 评论 -
记一次Spark报错:Failed to allocate a page (67108864 bytes), try again.
业务那边给了个需求,我们这边完成的话需要两个表进行join操作,小表(4800万条)大表(26亿条)。典型的小表和大表join,首先想到的就是 Broadcast Join对其进行一个最佳处理。原创 2022-06-26 15:51:23 · 2966 阅读 · 0 评论 -
Spark跨集群写hive
我们有两个集群(ps:计算集群/存储集群),现在有个需求就是,计算集群运行Spark任务,从kafka取数据写到存储集群的hive。1,在远程连接Hive时Hive有两种服务Hive Metastore Server和HiveServer2HiveServer2是JDBC连接,使用这种方式会占用数据本地集群的计算资源(常用默认端口10000的那种)2,Spark连接Hive可以使用Hive Metastore Server,这样只需连接Hive的元数据,通过元数据记录的数据路径拉取数据使用Spark对原创 2022-06-05 19:40:01 · 1175 阅读 · 4 评论