- 星火版本:1.6.2
- Java 版本:7
我有一个 List<String>
数据。就像是:
[[dev, engg, 10000], [karthik, engg, 20000]..]
我知道此数据的架构。
name (String)
degree (String)
salary (Integer)
我试过了:
JavaRDD<String> data = new JavaSparkContext(sc).parallelize(datas);
DataFrame df = sqlContext.read().json(data);
df.printSchema();
df.show(false);
输出:
root
|-- _corrupt_record: string (nullable = true)
+-----------------------------+
|_corrupt_record |
+-----------------------------+
|[dev, engg, 10000] |
|[karthik, engg, 20000] |
+-----------------------------+
因为 List<String>
不是正确的 JSON。
我需要创建一个合适的 JSON 还是有其他方法可以做到这一点?
原文由 Dev 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以从
List<String>
创建 DataFrame,然后使用selectExpr
和split
获取所需的 DataFrame。您将获得以下输出。
您提供的示例数据有空格。如果你想删除空间并将工资类型设置为“整数”,那么你可以使用
trim
和cast
函数,如下所示。