小编max*_*ano的帖子

将 RDD[String] 转换为数据帧

我有一个带有这种形式的 RDD[String]:

VAR1,VAR2,VAR3,VAR4, ...
  a ,  b ,  c ,  d , ...
  e ,  f ,  g ,  h , ...
Run Code Online (Sandbox Code Playgroud)

这意味着第一行是我的标题逗号分隔,所有以下行都是我的数据,也是逗号分隔。

我的目的是将该非结构化 RDD 转换为这样的 DataFrame:

_____________________
|VAR1|VAR2|VAR3|VAR4| 
|----|----|----|----|
|  a |  b |  c |  d | 
|  e |  f |  g |  h | 
Run Code Online (Sandbox Code Playgroud)

我尝试使用 toDF() 方法,它将 RDD[tuples] 转换为 Dataframe。但是从 RDD[String] 到 RDD[tuples] 的转换对于我的变量数量(超过 200 个)来说听起来不切实际。

另一种解决方案应该是使用该方法

sqlContext.createDataFrame(rdd, schema)
Run Code Online (Sandbox Code Playgroud)

这需要将我的 RDD[String] 转换为 RDD[Row] 并将我的标题(RDD 的第一行)转换为模式:StructType,但我不知道如何创建该模式。

任何将 RDD[String] 转换为带有标头的数据帧的解决方案都会非常好。

提前致谢。

scala dataframe apache-spark rdd

1
推荐指数
1
解决办法
1705
查看次数

标签 统计

apache-spark ×1

dataframe ×1

rdd ×1

scala ×1