PySpark中的Apache Spark中是否存在等效的Pandas Melt函数,或者至少在Scala中?
我到目前为止在python中运行了一个示例数据集,现在我想将Spark用于整个数据集.
提前致谢.
我有一个下面给出的格式的数据框。
movieId1 | genreList1 | genreList2
--------------------------------------------------
1 |[Adventure,Comedy] |[Adventure]
2 |[Animation,Drama,War] |[War,Drama]
3 |[Adventure,Drama] |[Drama,War]
Run Code Online (Sandbox Code Playgroud)
并尝试创建另一个标志列,显示流派列表 2 是否是流派列表 1 的子集
movieId1 | genreList1 | genreList2 | Flag
---------------------------------------------------------------
1 |[Adventure,Comedy] | [Adventure] |1
2 |[Animation,Drama,War] | [War,Drama] |1
3 |[Adventure,Drama] | [Drama,War] |0
Run Code Online (Sandbox Code Playgroud)
我试过这个
def intersect_check(a: Array[String], b: Array[String]): Int = {
if (b.sameElements(a.intersect(b))) { return 1 }
else { return 2 }
}
def intersect_check_udf =
udf((colvalue1: Array[String], colvalue2: Array[String]) => intersect_check(colvalue1, colvalue2))
data = data.withColumn("Flag", intersect_check_udf(col("genreList1"), col("genreList2"))) …Run Code Online (Sandbox Code Playgroud)