J'ai vu un tutoriel sur les cadres de données à https://databricks.com/blog/2015/02/17/introducing-dataframes-in-spark-for-large-scale-data-science.html qui est écrit en Python
. J'essaie de le traduire en Scala
.
Ils ont le code suivant :
df = context.load("/path/to/people.json")
# RDD-style methods such as map, flatMap are available on DataFrames
# Split the bio text into multiple words.
words = df.select("bio").flatMap(lambda row: row.bio.split(" "))
# Create a new DataFrame to count the number of words
words_df = words.map(lambda w: Row(word=w, cnt=1)).toDF()
word_counts = words_df.groupBy("word").sum()
J'ai donc commencé par lire les données d'un csv
dans un cadre de données df
et je l'ai fait :
val title_words = df.select("title").flatMap { row =>
row.getAs[String("title").split(" ") }
val title_words_df = title_words.map( w => Row(w,1) ).toDF()
val word_counts = title_words_df.groupBy("word").sum()
mais je ne sais pas :
-
comment attribuer les noms de champs aux lignes de la ligne commençant par val title_words_df = ...
-
Je reçois l'erreur "The value toDF is not a member of org.apache.spark.rdd.RDD[org.apache.spark.sql.Row]"
Merci d'avance pour votre aide.