Essayez d'utiliser la carte sur une Étincelle DataFrame
J'ai récemment commencé à expérimenter avec les deux Étincelle et Java. J'ai d'abord passé par le célèbre WordCount
exemple à l'aide de RDD
et tout s'est passé comme prévu. Maintenant, je suis en train de mettre en œuvre mon propre exemple, mais à l'aide de DataFrames et pas RDDs.
Donc, je suis à la lecture d'un dataset à partir d'un fichier avec
DataFrame df = sqlContext.read()
.format("com.databricks.spark.csv")
.option("inferSchema", "true")
.option("delimiter", ";")
.option("header", "true")
.load(inputFilePath);
et puis j'ai essayer de sélectionner une colonne spécifique et l'application d'une simple transformation à chaque ligne comme ça
df = df.select("start")
.map(text -> text + "asd");
Mais la compilation rencontre un problème avec la deuxième ligne dont je ne comprends pas tout (Le début de la colonne est déduit comme étant de type string
).
Plusieurs non-surchargeant les méthodes abstraites trouvé dans l'interface de la scala.Fonction1
Pourquoi ma fonction lambda traité comme un Scala de fonction et de ce que signifie le message d'erreur signifie réellement?
OriginalL'auteur LetsPlayYahtzee | 2017-03-02
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez le
select
fonction sur un dataframe vous obtenez un dataframe de retour. Ensuite, vous appliquer une fonction sur leRow
type de données pas de la valeur de la ligne. Ensuite, vous devez obtenir la valeur première de sorte que vous devez effectuer les opérations suivantes:df.select("start").map(el->el.getString(0)+"asd")
Mais vous aurez une RDD comme valeur de retour non pas une DF
peut-être que vous pouvez essayer:
df.select("start").forEach(el->el.getString(0)+"asd")
OriginalL'auteur jojo_Berlin