Sto cercando di capire la nuova API dataframe in Spark. sembra un buon passo in avanti, ma avendo problemi a fare qualcosa che dovrebbe essere piuttosto semplice. Ho un dataframe con 2 colonne, "ID" e "Quantità". Come esempio generico, dire che voglio restituire una nuova colonna chiamata "codice" che restituisce un codice basato sul valore di "Amt". Riesco a scrivere una cosa del genere functiin:Crea nuova colonna con funzione in Spark Dataframe
def coder(myAmt:Integer):String {
if (myAmt > 100) "Little"
else "Big"
}
Quando provo ad usare in questo modo:
val myDF = sqlContext.parquetFile("hdfs:/to/my/file.parquet")
myDF.withColumn("Code", coder(myDF("Amt")))
ottengo tipo errori di mismatch
found : org.apache.spark.sql.Column
required: Integer
Ho provato a cambiare la inserisci il tipo sulla mia funzione su org.apache.spark.sql.Column ma poi comincio a ottenere wrrors con la funzione di compilazione perché vuole un valore booleano nell'istruzione if.
Sto sbagliando? C'è un modo migliore/diverso per farlo rispetto all'utilizzo di Colonna?
Grazie per il vostro aiuto.
'myDF.printSchema' preghiamo, vediamo la struttura della tabella di file. –