Как я могу прочитать фрейм данных, используя потоковую передачу с указанием схемы? - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь прочитать файл csv в фрейм данных из AWS S3 с использованием потоковой передачи Spark, однако данные не сохраняются в нужных столбцах, а вводятся только в 1 столбце, а остальные равны нулю.Нужен способ, как я могу принять CSV-файл в качестве ввода в формате.

Я попытался добавить схему.При удалении схемы и попытке вывести состояния схемы обязательно указать схему.

var schema = StructType(
  StructField("date", StringType, true) ::
    StructField("close",StringType, true) ::
    StructField("volume", StringType, true) ::
    StructField("open", StringType, true) ::
    StructField("high",StringType,true) ::
    StructField("low", StringType,true) :: Nil)

val ds = spark
  .readStream
  .option("sep", ";")
  .format("csv")
  .option("thousands",",")
  .schema(schema)
  .option("header",true)
  .load(path)

val df = ds.select("*")

df.writeStream.outputMode("append")
  .format("console")
  .trigger(Trigger.ProcessingTime("5 seconds"))
  .start("/home/admin1/IdeaProjects/StockPricePrediction/src/main/output/")
  .awaitTermination()

Я ожидал, что в каждом столбце будет фрейм данных, однако он выглядит примерно так:

Batch: 0
-------------------------------------------
19/07/02 18:53:46 INFO CodeGenerator: Code generated in 20.170544 ms
+--------------------+-----+------+----+----+----+
|                date|close|volume|open|high| low|
+--------------------+-----+------+----+----+----+
|0,2019/06/28,1080...| null|  null|null|null|null|
|1,2019/06/27,1076...| null|  null|null|null|null|
|2,2019/06/26,1079...| null|  null|null|null|null|
|3,2019/06/25,1086...| null|  null|null|null|null|
|4,2019/06/24,1115...| null|  null|null|null|null|
+--------------------+-----+------+----+----+----+

Любая помощь будет оценена.Спасибо

1 Ответ

0 голосов
/ 03 июля 2019

Похоже, ваш разделитель неправильно установлен.Поскольку все данные, кажется, сгруппированы в столбце даты.

.option("delimiter", ",")
...