Прочитайте CSV-файл, используя scala, и сгенерируйте аналитику - PullRequest
0 голосов
/ 17 января 2020

Я начал изучать scala, и я попытался решить сценарий, как показано ниже. У меня есть входной файл с несколькими транзакциями, разделенными ','. Ниже приведены мои примеры значений:

transactionId, accountId, transactionDay, category, transactionAmount

A11,A45,1,SA,340
A12,A2,1,FD,567

и Я должен рассчитать общую стоимость транзакции для всех транзакций за каждый день вместе с другой статистикой . Ниже мой начальный фрагмент

import scala.io.Source 
val fileName = "<path of input file>" 
Transaction( 
  transactionId: String, accountId: String, 
  transactionDay: Int, category: String, 
  transactionAmount: Double)   
Source.fromFile(fileName).getLines().drop(1) 
val transactions: List[Transaction] = transactionslines.map { line => 
  val split = line.split(',') Transaction(split(0), split(1), split(2).toInt, split(3), split(4).toDouble) }.toList

1 Ответ

2 голосов
/ 18 января 2020

Вы можете сделать это следующим образом:

val sd=transactions.groupBy(_.transactionDay).mapValues(_.map(_.transactionAmount).sum)

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

val scalatoDF = spark.sparkContext.parallelize(transactions).toDF("transactionId","accountId","transactionDay","category","transactionAmount")

scalatoDF.show()

Надеюсь, это поможет!

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