はRDD[Array[String]]
です。私はそれを反復し、隣接する要素を比較したい。これを行うには、RDDからデータセットを作成する必要があります。Sparkで文字列の配列を含むRDDからSQLContextデータセットを作成
import org.apache.spark.sql.SQLContext
val sqc = new SQLContext(sc)
val lines = sqc.createDataset(data)
そして、私は2つの次のエラーを取得:
私はsc
、以下を試してみてください、私のSparkContext
ある
Error:(12, 34) Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing sqlContext.implicits._ Support for serializing other types will be added in future releases. val lines = sqc.createDataset(data)
Error:(12, 34) not enough arguments for method createDataset: (implicit evidence$4: org.apache.spark.sql.Encoder[Array[String]])org.apache.spark.sql.Dataset[Array[String]]. Unspecified value parameter evidence$4. val lines = sqc.createDataset(data)
確かに、私は、しかし、私はエンコーダの引数を渡す必要があります理解してこの場合はどうなりますか、エンコーダーはどのようにインポートしますか?私は自分自身を試してみると、createDataset
はそれを引数として取っていないと言います。
同様の質問がありますが、エンコーダの引数の使い方には答えません。私のRDDがRDD[String]
なら、それは完璧に動作しますが、この場合はRDD[Array[String]]
です。
'import sqc.implicits._' – philantrovert
私はすでにこれらの質問を読んでいるので、重複しているとは考えていません。 – osk
それをインポートすると、エンコーダはどのように使用できますか? (第2引数に何を渡すのですか?) – osk