Ich habe zwei der Datenrahmen (Funke Scala) wie unten:Kartesisches Produkt von zwei Datenrahmen und Summe der Cartesion in Spark (Scala)?
df1 is Array((1,WrappedArray(1,2,3)),(2,WrappedArray(1,2,4)))
org.apache.spark.sql.DataFrame = [id: int, features: array<float>]
df2 is Array((1,WrappedArray(4,5,6)),(2,WrappedArray(3,5,6)))
Zuerst muss ich über zwei df des Kartesischen und Summation der Arraywerte erzeugen.
beispiel ist cartesianischen wie unten:
((11,(Array(1,2,3),Array(4,5,6))),(12,(Array(1,2,3),Array(3,5,6))),(21,(Array(1,2,4),Array(4,5,6))),(22,(Array(1,2,4),Array(3,5,6))))
Kartesischen und Summation wie folgt:
Array ((11,1 * 4 + 2 + 3 * 5 * 6), (12,1 * 3 + 2 * 5 + 3 * 6), (21, (1 * 4 + 2 * 5 + 4 * 6)) (22, (1 * 3 + 2 * 5 + 4 * 6))
Ich habe versucht, Cartesian wie folgt:
scala> val cart=df1.cartesian(df2)
aber ich bekomme er ror
<console>:41: error: value cartesian is not a member of org.apache.spark.sql.DataFrame
danach i df rdd umgewandelt haben RDD.ie mit df.rdd nach, dass ich versucht habe ufrdd.cartesian(miftrdd).map{ case ((k1, v1), (k2, v2)) => (((k1.toString).zip(k2.toString))) -> v1.zip(v2).map(x => x._1 * x._2).reduce(_ + _) }.foreach(println)
aber ich bin immer Fehler wie
error: constructor cannot be instantiated to expected type;
found : (T1, T2)
required: org.apache.spark.sql.Row
bitte helfen Sie mir zu diesem Thema, wie zu erreichen
Array ((11,1 * 4 + 2 * 5 + 3 * 6), (12,1 * 3 + 2 * 5 + 3 * 6), (21, (1 * 4 + 2 *) 5 + 4 * 6)) (22, (1 * 3 + 2 * 5 + 4 * 6))