【发布时间】:2019-05-15 11:29:34
【问题描述】:
我正在使用 Java 处理一个新的 Spark 项目。我必须从 CSV 文件中读取一些数据,这些 CSV 有一个浮点数组,我不知道如何在我的数据集中获取这个数组。
我正在阅读这个 CSV:
[CSV data image][1] https://imgur.com/a/PdrMhev
我正在尝试以这种方式获取数据:
Dataset<Row> typedTrainingData = sparkSession.sql("SELECT CAST(IDp as String) IDp, CAST(Instt as String) Instt, CAST(dataVector as String) dataVector FROM TRAINING_DATA");
我明白了:
root
|-- IDp: string (nullable = true)
|-- Instt: string (nullable = true)
|-- dataVector: string (nullable = true)
+-------+-------------+-----------------+
| IDp| Instt| dataVector|
+-------+-------------+-----------------+
| p01| V11apps|-0.41,-0.04,0.1..|
| p02| V21apps|-1.50,-1.50,-1...|
+-------+-------------+-----------------+
正如您在架构中看到的,我将数组读取为字符串,但我想获取数组。推荐?
我想在这个加载的数据中使用 MLlib 的一些机器学习算法,因此我想将数据作为数组获取。
谢谢你们!!!!!!!!!
【问题讨论】:
-
能否展示您的 CSV 文件示例。
-
CSV 格式不支持数组。因此,您只想使用 dataVector 字符串中的 with 列构建一个数组
-
@BSeitkazin 是的,当然。在主帖中编辑。
-
@BSeitkazin StackOverFlow 不让我放照片,所以我放了一个链接来告诉你我的 CSV 怎么样。
标签: java arrays apache-spark apache-spark-sql apache-spark-mllib