1、使用VectorAssembler()将多个dataframe数值列以及数组列合并到一列("feature")中去
问题描述:
spark内部有优化处理,当使用rdd+row方式获取"feature"这一列数据时,有的数据为sparsevector有的数据为densvector,而实际需要的是array[Double]
解决方式:
使用spark.ml.linalg.Vector类接收上述两种vector,再使用toArray方式就获取了array[Double]
2、为dataframe添加随机数列
包:org.apache.spark.sql.functions
方法:rand().alias("myrand")
3、scala生成1个随机整数、随机浮点数、高斯分布的值、随机长整形、随机字符串、随机byte
scala.util.Random.nextInt()
4、spark-dataframe中concat_ws的空值问题
concat_ws会跳过空值列,慎用