List 创建二维列表,然后在Scala中生成数据帧

List 创建二维列表,然后在Scala中生成数据帧,list,scala,dataframe,maven,List,Scala,Dataframe,Maven,我有一个日期格式列表:(天,小时,分钟)-->(5,3,12) 我想在列表中插入这些数据。e、 g.((5,3,12),(1,14,21),…) 我是Scala的新手,我不知道如何做到这一点。然后我需要从这些数据创建一个数据帧 data = Seq( (l , m , r) ).toDF("day", "hour", "minutes") 像这样。如果有人能告诉我这样做的最佳实践,我将不胜感激。谢谢也许我需要更

我有一个日期格式列表:(天,小时,分钟)-->(5,3,12) 我想在列表中插入这些数据。e、 g.((5,3,12),(1,14,21),…) 我是Scala的新手,我不知道如何做到这一点。然后我需要从这些数据创建一个数据帧

data = Seq(
      (l , m , r)
      ).toDF("day", "hour", "minutes")
像这样。如果有人能告诉我这样做的最佳实践,我将不胜感激。谢谢也许我需要更多地提出我的问题。我在Python中也做了同样的事情。İt似乎是:

for index in table:
  index = str(index)
  parts = index.split(" ") #first element is part0
  hours_minutes_second = parts[1].split(":")
  year = parts[0].split("-")
  dates=(year[0],year[1],year[2],hours_minutes_second[0],hours_minutes_second[1],hours_minutes_second[2])
  data.append(dates)
df = pd.DataFrame(data, columns = ['day','hours','minutes'])  
您不必担心数据的索引和格式。我需要的是,创建一个二维列表,然后制作它的数据框架

[ ( '25', '06', '55'), ( '24', '14', '51'), ( '24', '06', '24'), ( '24', '03', '42'),
('23','19','30')]

对于您的问题,我假设您想要创建一个Spark数据帧 与Scala列表完全不同

要创建数据帧,首先需要创建模式。你可以这样做:

val schema = StructType(
  List(
    StructField("day", IntegerType),
    StructField("hour", IntegerType),
    StructField("minutes", IntegerType)
  ))
有几种方法可以创建数据帧,例如:

给定一个Seq[Row],您可以创建一个RDD[Row],然后从中创建数据帧:

val rdd : RDD[Row]= spark.sparkContext.parallelize(Seq(Row(5,3,12)))

val df = spark.createDataFrame(rdd, schema)

df.show()

/*
+---+----+-------+
|day|hour|minutes|
+---+----+-------+
|  5|   3|     12|
+---+----+-------+
*/
对于二维列表的情况:

val schema2 = StructType(
  List(
    StructField("day", StringType),
    StructField("hour", StringType),
    StructField("minutes", StringType)
  ))

val list = List(
  Seq("25", "06", "55"),
  Seq("24", "14", "51"),
  Seq("24", "06", "24"),
  Seq("24", "03", "42"),
  Seq("23", "19", "30"))

val rdd : RDD[Row]= spark.sparkContext.parallelize(list.map(el => Row.fromSeq(el)))

val df = spark.createDataFrame(rdd, schema2)

df.show()
/*
+---+----+-------+
|day|hour|minutes|
+---+----+-------+
| 25|  06|     55|
| 24|  14|     51|
| 24|  06|     24|
| 24|  03|     42|
| 23|  19|     30|
+---+----+-------+
*/

您使用的是Spark数据帧吗?