5
Na przykład załóżmy, że mam DataFrame:Apache Spark: Jak przekonwertować urządzenie Spark DataFrame na RDD z typem RDD [(Type1, Type2, ...)]?
var myDF = sc.parallelize(Seq(("one",1),("two",2),("three",3))).toDF("a", "b")
mogę przekonwertować go do RDD[(String, Int)]
z mapą:
var myRDD = myDF.map(r => (r(0).asInstanceOf[String], r(1).asInstanceOf[Int]))
Czy istnieje lepszy sposób to zrobić, być może przy użyciu schematu DF ?
Ooh, że 'as' funkcja jest idealna. –
Czy Twój wzór pasujący do 'Row' będzie szybszy lub bezpieczniejszy niż moja mapa' asInstanceOf'? Czy może sprowadza się do dość podobnej operacji z czystszą składnią? –
Druga opcja obawiam się. 'Row' (i ogólnie DataFrame) jest dość irytujące, jeśli chodzi o pisanie statyczne. Używanie 'Dataset' powinno być znacznie bardziej wydajne, szczególnie jeśli nie konwertujesz na RDD. – zero323