私は最近Spark=とJavaの両方で実験を始めました。最初にWordCount
を使用して有名なRDD
exampleを試しましたが、すべてが期待通りに進みました。私自身の例ですが、RDDではなくDataFrameを使用しています。
だから私はファイルからデータセットを読んでいます
DataFrame df = sqlContext.read()
.format("com.databricks.spark.csv")
.option("inferSchema", "true")
.option("delimiter", ";")
.option("header", "true")
.load(inputFilePath);
そして、特定の列を選択し、そのようなすべての行に単純な変換を適用しようとします
df = df.select("start")
.map(text -> text + "asd");
しかし、コンパイルでは2番目の行に問題が見つかりますが、これは完全には理解できません(開始列はstring
型として推測されます)。
インターフェースscala.Function1にある複数のオーバーライドしない抽象メソッド
ラムダ関数がScala関数として扱われるのはなぜですか?エラーメッセージの実際の意味は?
データフレームでselect
関数を使用すると、データフレームが返されます。次に、行の値ではなく、Row
datatypeに関数を適用します。その後、最初に値を取得する必要があるため、以下を実行する必要があります。
df.select("start").map(el->el.getString(0)+"asd")
しかし、DFではなく戻り値としてRDDを取得します