2

Flinkで実行しようとしているコードの一部:

val pages = env.readCsvFile[(Long)]("/home/ppi.csv",
   fieldDelimiter = "\t", includedFields = Array(1))

pages他の目的で使用したいのですが、コンパイルすると、Flink は次のようなエラー メッセージをスローします。

スレッド「メイン」の例外 java.lang.ClassCastException: org.apache.flink.api.common.typeinfo.IntegerTypeInfo は org.apache.flink.api.java.typeutils.PojoTypeInfo
にキャストできません

ところで、私は Flink の 0.9 スナップショット バージョンを使用しています。正しい方向への助けは大歓迎です。

4

1 に答える 1

3

CSV ファイルから読み取る場合、戻り値の型はすべての読み取りフィールドを含む Scala タプルになります。あなたの例では、Tuple1 を与える単一のフィールドのみを読み取っています。これは、「Long」を括弧で囲んで指定しようとするものです。

readCsvFile[(Long)]

Scala では、括弧を使用して 2 つ以上のフィールドを持つタプルのみを指定できます。したがって、代わりに書く必要があります

readCsvFile[Tuple1[Long]]

Flink の CSVInputFormat がタプル以外のすべての型を Pojo 型として解釈しようとするため、例外がスローされます。

于 2015-07-08T12:12:59.917 に答える