データフレームに構造体列を追加しますが、構造体にはフィールド以上が追加されます。
ケースクラスはstructカラムに変更できますが、ケースクラスは22フィールド以下の制限があります(オンラインスパークは2.10.4のスカラで1.6.3です)。
できます通常のクラスこれを行いますか?私はどのような機能やインターフェイスを実装する必要がありますか?
"org.apache.spark.sql.functions.struct"もありますが、構造体のフィールドの名前を設定できないようです。 ありがとうございます。この構造体のためにケースクラスを定義する必要はありませんデータフレームに大きな構造体列を追加する方法
0
A
答えて
2
データフレームを読んでいますが、構造体のフィールドの名前を設定することができないようですできます。
できます。たとえば:その可能.https場合
import org.apache.spark.sql.functions._
spark.range(1).withColumn("foo",
struct($"id".alias("x"), lit("foo").alias("y"), struct($"id".alias("bar")))
).printSchema
root
|-- id: long (nullable = false)
|-- foo: struct (nullable = false)
| |-- x: long (nullable = false)
| |-- y: string (nullable = false)
| |-- col3: struct (nullable = false)
| | |-- bar: long (nullable = false)
+1
ありがとう、それは私が欲しいものです。 – xuhai
0
、あなたはこのよう構造体の型を作成することができます
val struct =
StructType(
StructField("a", IntegerType, true) ::
StructField("b", LongType, false) ::
StructField("c", BooleanType, false) :: Nil)
この構造体には、任意の長さを持つことができます。
あなたは、このよう
val df = sparkSession.read.schema(struct).//your read method
+0
あなたの答えをありがとう。今私はすでに約40の列を持つデータフレームを持っており、その型が構造体である新しい列を追加したい。既存の40個のフィールドと新しい構造体を結ぶ新しい構造体を定義する必要があるのですか? – xuhai
関連する問題
- 1. Goの構造体の配列に構造体を追加する方法
- 2. 構造体内の構造体の配列に追加
- 3. 構造体 - スウィフトのカスタムプロトコルの配列に追加できない
- 4. 構造体の要素を関数に追加する方法
- 5. ベクトル、行列、構造体に空の値を追加する方法
- 6. 大きなポインタ構造体を扱う方法
- 7. ボタンから構造体を追加する方法
- 8. C言語の配列に構造体を追加する
- 9. ポインタ配列に構造体ポインタを追加する
- 10. 構造体を別の構造体メンバにキャストする方法
- 11. [String:Any]ディクショナリ構造体に配列に追加する
- 12. sparkデータフレーム内の既存の構造体に要素を追加する
- 13. 構造体の構造体配列をvbaからc-dllに渡す方法
- 14. 構造体の構造体の配列を初期化する方法は?
- 15. 構造体を別の構造体に渡す方法
- 16. Goの構造体に大きな行をスキャンする
- 17. gdbで大きな構造体の非ゼロメンバーをフィルタリングする方法
- 18. 構造体内に配列を追加した後のセグメンテーションフォールト(コアダンプ)
- 19. 構造体配列の最後に追加構造体を追加するにはどうすればよいですか? Cの配列
- 20. 構造体の配列を別の構造体にネストする
- 21. jsonを使ってGo構造体にオートインクリメントを追加する方法
- 22. TStringListに大きな文字列を追加する方法
- 23. 新しいデータ構造体にIntを追加する方法(Swift 3)
- 24. C#queue - 各キューのスポットに構造体を追加する方法
- 25. 構造体の配列 - 構造体?
- 26. 配列から構造体配列への要素の追加
- 27. 関数に大きなconst構造体を渡す
- 28. ツリービュー構造に子レベルと大子レベルのjsonデータを追加する方法
- 29. Angular2 $ eventターゲットのデータバインドまたは構造体ディレクティブに追加する方法は?
- 30. c#構造体の配列を配列の構造体に変換する方法
は、UDFのために行く:私はあなたがすることができないことによって意味を理解しない//stackoverflow.com/questions/33826495/spark-scala-2-10-tuple-limit –
を構造体のフィールド名を設定します。このようにすることができます val fields = new StructField( "name"、StringType、false)::新しいStructField( "age"、IntegerType、false)::リスト(新しいStructField( "age"、IntegerType、false)) – BDR
ありがとうBalaji Reddy。今私はすでに約40の列を持つデータフレームを持っており、その型が構造体である新しい列を追加したい。既存の40個のフィールドと100個以上のフィールドを持つ新しい構造体を結ぶ新しい構造体を定義する必要があるのですか? – xuhai