2017-06-26 4 views
1

In Spark-Scala bei dem Versuch, subtrahieren Methode zu verwenden, erhalte ich die Fehler folgendenWert subtrahieren ist kein Mitglied von org.apache.spark.sql.DataFrame in Spark-Scala

<console>:29: error: value subtract is not a member of org.apache.spark.sql.DataFrame 

Aber von den folgenden Links I sieht es in Python vorhanden ist, obwohl

https://forums.databricks.com/questions/7505/comparing-two-dataframes.html https://spark.apache.org/docs/1.3.0/api/python/pyspark.sql.html?highlight=dataframe#pyspark.sql.DataFrame.subtract

haben wir Methode überhaupt in dem Spark-Scala subtrahieren haben? Wenn nicht, was ist der Ersatz dafür?

Mein Beispielcode sieht wie folgt aus:

scala> val myDf1 = sc.parallelize(Seq(1,2,2)).toDF 
myDf1: org.apache.spark.sql.DataFrame = [value: int] 

scala> val myDf2 = sc.parallelize(Seq(1,2)).toDF 
myDf2: org.apache.spark.sql.DataFrame = [value: int] 

scala> val result = myDf1.subtract(myDf2) 
<console>:28: error: value subtract is not a member of org.apache.spark.sql.DataFrame 
     val result = myDf1.subtract(myDf2) 
+0

Welche Version von Funken verwenden Sie? – eliasah

Antwort

1

Das ist, weil subtract nicht existiert und ehrlich ich bin nicht sicher, was Sie zu tun versuchen:

scala> val df1 = sc.parallelize(Seq(1,2,2)).toDF 
df1: org.apache.spark.sql.DataFrame = [value: int] 

scala> val df2 = sc.parallelize(Seq(1,2)).toDF 
df2: org.apache.spark.sql.DataFrame = [value: int] 

scala> df1.except(df2).show 
+-----+                   
|value| 
+-----+ 
+-----+ 

Aber es scheint, wie Sie diese Duplikate finden und behalten möchten, anstatt sie zu entfernen.

Von der Spitze von meinem Kopf:

scala> val dupes = df1.groupBy("value").count.filter("count > 1").drop("count") 
dupes: org.apache.spark.sql.DataFrame = [value: int] 

scala> dupes.show() 
+-----+ 
|value| 
+-----+ 
| 2| 
+-----+ 
+0

Ich versuche, die ID (s) zu finden, die in einem anderen DataFrame dupliziert werden. In diesem Fall hat df1 doppelte ID 2. Haben wir eine Abkürzung, um das herauszufinden? –

+0

Sie haben meine Frage nicht beantwortet. – eliasah

+0

Ich verwende Spark 2.x –

Verwandte Themen