我有一个样本数据集,其中包含与组织员工相关的数据。请在下面找到数据集的架构。
我想在这里解决的问题是,员工使用相关矩阵坚持组织的最重要标准是什么。 我试图在spark / scala中的sql查询中解决这个问题。
Schema of the Dataset
|-- satisfaction_level: float
|-- last_evaluation: float
|-- number_project: integer
|-- average_monthly_hours: integer
|-- time_spend_company: integer
|-- work_accident: integer
|-- left: integer
|-- promotion_last_5years: integer
|-- department: string
|-- salary: string
我尝试了下面这个查询,但它没有让我得到任何结果,根据我对数据的理解和分析,我可以证明当satisf_level下降时员工倾向于离开组织
val correlationVal = employeesDF.stat.corr("satisfaction_level","left")
我在编写sql查询时遇到了解决上述问题的问题,有人可以帮我吗?为此问题应用相关矩阵的正确方法是什么?
注意:如果有更好/更简单的方法使用Spark解决此问题,请分享我的输入。
答案 0 :(得分:0)
这是一个适合我的最小代码:
import org.apache.spark.sql.{DataFrame,Row}
import org.apache.spark.sql.Row
import org.apache.spark.sql.types._
import org.apache.spark.{SparkConf, SparkContext }
import org.apache.spark.sql.hive.HiveContext
val schema = StructType( Array(
StructField("col1", IntegerType, true),
StructField("col2", FloatType, true)
))
val rdd = sc.parallelize( Seq(Row(1, 1.34.toFloat), Row(2, 2.02.toFloat), Row(3, 3.4.toFloat), Row(4, 4.2.toFloat)))
val dataFrame = spark.createDataFrame(rdd, schema)
dataFrame.stat.corr("col1","col2")
结果为0.9914
,几乎接近1表示列是相关的。