いくつかの方法Spark2.0で、私は問題Spark2.0のDataset.map(r => xx)とDataframe.map(r => xx)の違いは何ですか?
しかしDataSet.map(r => r.getAs[String]("field"))
r
は「のGetAs」メソッドを持っていないことを示すエラーを与えることなく、Dataframe.map(r => r.getAs[String]("field"))
を使用することができます。
何DataFrame
でDataSet
でr
とr
の違いだとr.getAs
はDataFrame
で動作しますなぜですか? class Dataset[T]
:
にStackOverflowでいくつかの研究を行った後、私はここに
Encoder error while trying to map dataframe row to updated row
を有用な答えを見つけたが、それは
あなたのデータセットのタイプは何ですか? 'getAs'は' Row'のメソッドですので 'r.getAs'は' r'が 'Row'です(つまり、あなたのデータセットは' DataSet [Row] 'です、' DataFrame'はちょうど'DataSet [Row]'のエイリアス) – puhlen
ありがとう。私はデータセット[_]を使用しました。 DataSet.map(r => xx)を実行すると、rとは何ですか?それはデータの行ですか? @puhlen – rileyss
いいえ、あなたがタイプを指定しなかったので 'r'は' Any'です – puhlen