Mam DataFrame z 200 kolumn, z których stworzyłem Array df.columns
,
podczas iteracji przez ramkę danych df, jak powiedzieć wierszowi, aby wybrać tylko kolumny z wiersza i utworzyć nową ramkę danych.
val df = df1.join.df2
val colNames = df.columns
df.map { row =>
**val createnewDF = (row(colNames)**
}
Jak utworzyć poniższą linię?
**val createnewDF = (row(colNames)**
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli zamierzasz wybrać tylko ograniczoną liczbę columns
od twojego złączonego dataframe
następnie musisz utworzyć array
nazw kolumn i ich użycia select
metoda jako
val colNames = Array("col1", "col2", "col4")
import org.apache.spark.sql.functions._
val createnewdf = df.select(colNames.map(col): _*)
df.columns
wybierze wszystkie nazwy kolumn w array
i nie widzę żadnego zastosowania wyboru kolumn wewnątrz pętli dataframe rows
jak to dataframe
już ma wszystkie kolumny.
Co więcej, możesz zmienić wartości wybranych kolumn w pętli wierszy. Ale pętla dataframe rows
nie jest zalecane, chyba że wbudowana funkcja nie jest zdefiniowany.