![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
瑾明达2号
Happy cooperation
展开
-
Spark dataframe某一列转化为Array
首先,必须保证列没有空值,如果有,则需要dropcolName 为 列名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 · 2243 阅读 · 0 评论 -
Spark 创建Dataframe和创建空的DataFrame
创建空的DataFramevar ret = spark.emptyDataFrame1. 隐式转换toDF1)使用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 · 997 阅读 · 0 评论 -
spark计算两个DataFrame的差集、交集、合集
转自:https://www.cnblogs.com/TTyb/p/7991952.htmlspark计算两个dataframe的差集、交集、合集,只选择某一列来对比比较好。新建两个dataframeimport org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.sql.SQLContextdef main(args: Array[String]): Unit = { val conf = ne...转载 2021-07-02 14:53:58 · 1443 阅读 · 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 · 4271 阅读 · 1 评论 -
Spark SQL 优化方法
转载自:https://dongkelun.com/2018/12/26/sparkSqlOptimize/1、避免用in 和 not in,用exists、not exists和join代替not inselect 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 · 574 阅读 · 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 · 187 阅读 · 0 评论 -
Spark算子-面试问题一:groupByKey、reduceByKey的区别?
1、原理层面的区别groupByKey 不会在map端进行combine,而reduceByKey 会在map端的默认开启combine进行本地聚合。在map端先进行一次聚合,很极大的减小reduce端的压力,一般来说,map的机器数量是远大于reduce的机器数量的。通过map聚合的方式可以把计算压力平均到各台机器,最终在reduce端只需要汇总map端聚合完成的数据即可,极大的提高效率。看图如下:...转载 2021-06-08 10:51:57 · 231 阅读 · 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 · 296 阅读 · 0 评论 -
Spark —— cache和unpersist的正确用法
cache和unpersist没有使用好,跟根本没用没啥区别,例如下面的例子,有可能很多人这样用:val rdd1 = ... // 读取hdfs数据,加载成RDDrdd1.cacheval rdd2 = rdd1.map(...)val rdd3 = rdd1.filter(...)rdd1.unpersistrdd2.take(10).foreach(println)rdd3.take(10).foreach(println)...转载 2021-06-07 14:10:10 · 1346 阅读 · 0 评论