Scala 如何将我的数据格式转换为ML';阿尔斯
我经常遇到这个问题,最后我使用Scala 如何将我的数据格式转换为ML';阿尔斯,scala,apache-spark,spark-dataframe,Scala,Apache Spark,Spark Dataframe,我经常遇到这个问题,最后我使用RDDs来解决它,我想知道是否可以用spark2.0来实现它。产品分数的正常存储方式是(userid,product1,…,productn)。但是,ALS实例化要求您设置用户列、项目列和评级列。那么,有没有任何方法可以使用DataFrames转换和/或SQL语句来实现这种转换呢 举例说明: 源DataFrame: +---+-----------------+------------------+ | id| product1|
RDD
s来解决它,我想知道是否可以用spark2.0
来实现它。产品分数的正常存储方式是(userid
,product1
,…,productn
)。但是,ALS
实例化要求您设置用户列、项目列和评级列。那么,有没有任何方法可以使用DataFrames
转换和/或SQL语句来实现这种转换呢
举例说明:
源DataFrame
:
+---+-----------------+------------------+
| id| product1| product2|
+---+-----------------+------------------+
| 2|4.285714285714286| 4.785714285714286|
| 3| 5.0| 5.0|
| 4|3.857142857142857|3.2142857142857144|
| 5|3.142857142857143|1.5714285714285714|
+---+-----------------+------------------+
+------+---------+------------------+
|userid|productid| score|
+------+---------+------------------+
| 2.0| 2.0| 4.785714285714286|
| 2.0| 1.0| 4.285714285714286|
| 3.0| 1.0| 5.0|
| 3.0| 2.0| 5.0|
+------+---------+------------------+
结果数据帧
:
+---+-----------------+------------------+
| id| product1| product2|
+---+-----------------+------------------+
| 2|4.285714285714286| 4.785714285714286|
| 3| 5.0| 5.0|
| 4|3.857142857142857|3.2142857142857144|
| 5|3.142857142857143|1.5714285714285714|
+---+-----------------+------------------+
+------+---------+------------------+
|userid|productid| score|
+------+---------+------------------+
| 2.0| 2.0| 4.785714285714286|
| 2.0| 1.0| 4.285714285714286|
| 3.0| 1.0| 5.0|
| 3.0| 2.0| 5.0|
+------+---------+------------------+
阿尔贝托,你问的不是很清楚。你能举例说明吗?你试过拉链和爆炸吗?你可以将所有productX组合成一个向量/数组,然后将其分解(无需实际压缩-划破这个,你最终需要某种索引)你仍然在寻找这个问题的答案吗?@eliasah,是的,很高兴知道你尝试过我建议的方法吗?阿尔贝托你问的不是很清楚。你能举例说明吗?你试过拉链和爆炸吗?您可以将所有productX组合成一个向量/数组,然后将其分解(无需实际压缩-划破这个,您最终需要某种索引)您仍然在寻找这个问题的答案?@eliasah,是的,很高兴知道您是否尝试了我建议的方法?