spark
瑾明达2号
Happy cooperation
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spark dataframe某一列转化为Array
首先,必须保证列没有空值,如果有,则需要drop colName 为 列名 data = data.na.drop(s"$colName") 输出格式为Array[Any] () data0.select(s"$colname").collect().map(_(0)) 输出为Array[String] data0.select(s"$colname").collect().map(_(0).toString) 输出为Array[Double] data0.select(s"$coln原创 2021-07-09 10:59:49 · 2426 阅读 · 0 评论 -
Spark 创建Dataframe和创建空的DataFrame
创建空的DataFrame var ret = spark.emptyDataFrame 1. 隐式转换toDF 1)使用case-class 引入隐式转换的包 import sqlContext.implicits._ 创建case-class的Rdd val rdd: RDD[Person] = sc.parallelize(Array( Person("fanghailiang", 29), Person("sunyu", 28), .转载 2021-07-08 11:24:25 · 1106 阅读 · 0 评论 -
spark计算两个DataFrame的差集、交集、合集
转自:https://www.cnblogs.com/TTyb/p/7991952.html spark计算两个dataframe的差集、交集、合集,只选择某一列来对比比较好。新建两个dataframe import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.SQLContext def main(args: Array[String]): Unit = { val conf = ne...转载 2021-07-02 14:53:58 · 1613 阅读 · 0 评论 -
问题解决:spark.debug.maxToStringFields
问题场景 使用spark 2.4.0进行统计数据,报错误,错误提示为: WARN Utils:66 - Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.debug.maxToStringFields' in SparkEnv.conf. 原因 是因为该表字段个数比较多,超过了默认值25,所以提示报错。 解决方转载 2021-06-11 15:19:00 · 4602 阅读 · 1 评论 -
Spark SQL 优化方法
转载自:https://dongkelun.com/2018/12/26/sparkSqlOptimize/ 1、避免用in 和 not in,用exists、not exists和join代替 not in select stepId,province_code,polyline from route_step where stepId not in (select stepId from stepIds) not exists: select stepId,province_code,.转载 2021-06-11 15:12:10 · 725 阅读 · 1 评论 -
value toDF is not a member of org.apache.spark.rdd.RDD[People]
import sqlContext.implicits._ 语句需要放在获取sqlContext对象的语句之后 case class People(name : String, age : Int) 的定义需要放在方法的作用域之外(即Java的成员变量位置)转载 2021-06-10 21:11:22 · 245 阅读 · 0 评论 -
Spark算子-面试问题一:groupByKey、reduceByKey的区别?
1、原理层面的区别 groupByKey 不会在map端进行combine,而reduceByKey 会在map端的默认开启combine进行本地聚合。 在map端先进行一次聚合,很极大的减小reduce端的压力,一般来说,map的机器数量是远大于reduce的机器数量的。通过map聚合的方式可以把计算压力平均到各台机器,最终在reduce端只需要汇总map端聚合完成的数据即可,极大的提高效率。 看图如下: ...转载 2021-06-08 10:51:57 · 326 阅读 · 0 评论 -
sparkGraphX 图操作:GranphX的map操作(mapVertices、mapEdges、mapTriplets)
def mapVertices[VD2](map:(VertexId, VD)=> VD2): Graph[VD2, ED] def mapEdges[ED2](map: Edge[ED] => ED2): Graph[VD, ED2] def mapTriplets[ED2](map: EdgeTriplet[VD, ED] => ED2): Graph[VD, ED2]转载 2021-06-07 20:05:55 · 386 阅读 · 0 评论 -
Spark —— cache和unpersist的正确用法
cache和unpersist没有使用好,跟根本没用没啥区别,例如下面的例子,有可能很多人这样用: val rdd1 = ... // 读取hdfs数据,加载成RDD rdd1.cache val rdd2 = rdd1.map(...) val rdd3 = rdd1.filter(...) rdd1.unpersist rdd2.take(10).foreach(println) rdd3.take(10).foreach(println) ...转载 2021-06-07 14:10:10 · 1588 阅读 · 0 评论
分享