は正しいですが、あなたはまた、次の操作を実行できます。
val l1=Array(1,2,3,4)
val l2=Array(1,2,3,4)
val Lz=Seq(l1,l2)
val df = sc.parallelize(Lz,2).map{
case Array(val1, val2, val3, val4) => (val1, val2, val3, val4)
}.toDF
df.show
// +---+---+---+---+
// | _1| _2| _3| _4|
// +---+---+---+---+
// | 1| 2| 3| 4|
// | 1| 2| 3| 4|
// +---+---+---+---+
あなたが列をたくさん持っている場合は、別々に進める必要があるだろうが、あなたはあなたのデータのスキーマを知っておく必要がありそうでない場合は、あなた'LL以下を実行することはできません。
val sch = df.schema // I just took the schema from the old df but you can add one programmatically
val df2 = spark.createDataFrame(sc.parallelize(Lz,2).map{ Row.fromSeq(_) }, sch)
df2.show
// +---+---+---+---+
// | _1| _2| _3| _4|
// +---+---+---+---+
// | 1| 2| 3| 4|
// | 1| 2| 3| 4|
// +---+---+---+---+
スキーマを提供していない限り、あなたは配列の列を持つ以外多くを行うことができなくなります。
val df3 = sc.parallelize(Lz,2).toDF
// df3: org.apache.spark.sql.DataFrame = [value: array<int>]
df3.show
// +------------+
// | value|
// +------------+
// |[1, 2, 3, 4]|
// |[1, 2, 3, 4]|
// +------------+
df3.printSchema
//root
// |-- value: array (nullable = true)
// | |-- element: integer (containsNull = false)
あなたがl1'と 'l2''の数を知らないが、彼らは常に同じ長さになります? – philantrovert
l1とl2のカウントは同じですが、リスト[Int]のカウントは常に同じ長さではありません。 – mentongwu