3

Spark SQL では、 には制限あり、JVM オブジェクトと内部 Spark SQL 表現との間の変換には制限DataTypeSchemaあります。Encoder

  • 実際には、 に関してこのようなエラーが発生する場合があります。DataTypeこれは通常、カスタム タイプを使用する場合に発生しますがDataFrame、カスタム タイプを使用する場合は発生しませんDataset[T]DataType(またはUDT)の議論は、Spark SQL でカスタム型のスキーマを定義する方法?

java.lang.UnsupportedOperationException: タイプ xxx のスキーマはサポートされていません

  • 実際には、 に関してこのようなエラーが発生する場合があります。Encoderこれは通常、カスタム タイプを使用する場合に発生しますがDataset[T]、カスタム タイプを使用する場合は発生しませんDataFrameEncoderカスタムオブジェクトをデータセットに保存する方法のポイントの議論?

データセットに格納されているタイプのエンコーダが見つかりません。プリミティブ型 (Int、String など) と製品型 (ケース クラス) は、sqlContext.implicits._ をインポートすることでサポートされます。他の型のシリアル化のサポートは、将来のリリースで追加される予定です。

私の理解では、どちらも内部の Spark SQL オプティマイザーに影響します (そのため、限られた数DataTypeの としかEncoder提供されていません)。DataFrameそしてとの両方DatasetがちょうどDataset[A]、それから..

質問(またはそれ以上..混乱)

  • なぜ最初のエラーは にのみ表示され、 に表示されDataFrameないのDataset[T]ですか? 2番目のエラーについて同じ質問...

  • 作成UDTすることで 2 番目のエラーを解決できますか? エンコーダーを作成すると、最初のエラーを解決できますか?

  • それぞれの関係をどのように理解し、DatasetSpark SQL エンジンとどのように相互作用するのでしょうか?

この投稿のイニシアチブは、2 つの概念をさらに探求し、オープン ディスカッションを引き付けることです。そのため、質問があまり具体的でない場合は、少しご容赦ください..そして、理解の共有を歓迎します. ありがとう。

4

0 に答える 0