1


文字列配列である列を値を連結して文字列に変換しようとしていますが、その特定の列を文字列の配列として関連付けることができない方法があります:

val converted = jsonFiles.map(line=> {line(7).asInstanceOf[Array[String]] })
converted.collect

そして、私は次のようになります:

4/11/23 10:40:16 エラー executor.Executor: ステージ 2.0 (TID 5) のタスク 1.0 での例外 java.lang.ClassCastException: scala.collection.mutable.ArrayBuffer は [Ljava.lang.String; にキャストできません。

私は何を間違っていますか?

ありがとう、
ダニエル

4

2 に答える 2

0

私はそれを Itreable[String] にキャストすることになり、それを mkString と呼びました。

于 2014-11-25T15:20:35.037 に答える
0

あなたが探しているものを正しく理解していないかもしれませんが、試してみます。文字列の行を読み取り、文字列をスペースで配列に分割する必要があります

val converted = jsonFiles.map(line=> {line(7).split(" ")})
converted.collect

ここでの問題は、(何をしているかによって異なります)「ステージ 2.0 のタスク 1.0 での例外 (TID 5)」は、分割されていない 1 つの文字列である必要があることです。これを行うには、次のものが必要です。

  • 文字列を " " として配列に分割する
  • 最初の 4 列から配列を作成する
  • 右側のサブ配列からマージされた文字列をこの配列に追加します

コード:

val columns = line(7).split(" ")
columns.take(4) :+ columns.drop(4).mkString(" ")
于 2014-11-23T21:20:16.857 に答える