как читать CSV файл в scala - PullRequest
       155

как читать CSV файл в scala

0 голосов
/ 07 августа 2020

У меня есть файл CSV, и я хочу прочитать этот файл и сохранить его в классе case. Насколько я знаю, CSV - это файл значений, разделенных запятыми. Но в случае моего файла csv есть некоторые данные, которые уже имеют запятую. и он создает новый столбец для каждой запятой. Итак, проблема, как разделить данные из этого.

1-е данные

04/20/2021 16:20(1st column)    Here a bunch of basic techniques that suit most businesses, and easy-to-follow steps that can help you create a strategy for your social media marketing goals.(2nd column)

2-е данные

11-07-2021 12:15(1st column)    Focus on attracting real followers who are genuinely interested in your content, and make the most of your social media marketing efforts.(2nd column)
var i=0
var length=0
val data=Source.fromFile(file)
for (line <- data.getLines) {
  val cols = line.split(",").map(_.trim)
  length = cols.length  
  while(i<length){
    //println(cols(i))
    i=i+1
  }
  i=0
}

Ответы [ 2 ]

0 голосов
/ 09 августа 2020

Если вы читаете сложный файл CSV, то идеальным решением является использование существующей библиотеки. Вот ссылка на результаты поиска ScalaDex для CSV.

ScalaDex CSV Search

Однако, судя по комментариям, кажется, что вы действительно хотите прочитать данные, хранящиеся в таблице Google. Если это так, вы можете использовать тот факт, что у вас есть некоторая гибкость, чтобы самостоятельно сохранить данные в текстовом файле. Когда я хочу прочитать данные из Google Sheet в Scala, я сначала использую подход, чтобы сохранить файл в формате, который не трудно читать. Если в полях есть запятые, но нет вкладок, что является обычным явлением, я сохраню файл как TSV и проанализирую его с помощью split("\t").

Простой фрагмент кода, который использует только стандартную библиотеку, может выглядеть например:

val source = scala.io.Source.fromFile("data.tsv")
val data = source.getLines.map(_.split("\t")).toArray
source.close

После этого data будет Array[Array[String]] с вашими данными, которые вы можете обрабатывать по своему усмотрению.

Конечно, если ваши данные включает как вкладки, так и запятые, тогда вам действительно захочется использовать одну из этих более надежных внешних библиотек.

0 голосов
/ 07 августа 2020

Вы можете использовать синтаксический анализатор CSV для более быстрой работы. Вы также можете использовать его для создания.

Парсеры Univocity

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...