我有一个类型为 01139290201001 to 0113929 for integer only rows and like this for the others
01139ÅÊ03003 to 0113903
的数组,我想将其转换为火花Array[(Any, (Any, Any))]
,以便第一个值在第一列中,而元组在第二列中。
答案 0 :(得分:1)
首先,DataFrame
对象具有强大的架构-您可以将RDD
或Seq
隐式转换为DataFrame
,但这会将强大的架构附加到您的收藏中。由于Any
类型只是说出我不知道我的类型的一种方式,因此在将其设为{{ 1}}。
假设您将所有内容都转换为DataFrame
:
String
给予
import spark.implicits._
val df = Array.empty[(Any, (Any, Any))]
.map{case (first, (second, third)) =>
(first.toString, (second.toString, third.toString))
}.toSeq.toDF
df.printSchema
答案 1 :(得分:0)
val arr: Array[(Int, (Int, Int))] = Array((1,(2,3)), (4,(5,6)))
spark.createDataFrame(arr).show()
哪个数据框为:
+---+-----+
| _1| _2|
+---+-----+
| 1|[2,3]|
| 4|[5,6]|
+---+-----+
或者您可以将列信息自定义为:
spark.createDataFrame(arr, schema:StructType)
我希望这会对您有所帮助。