Чтобы избежать ошибок ручных файлов, как кодировать динамический тип данных проверки столбца в spark / scala - PullRequest
0 голосов
/ 19 декабря 2018

Мы получаем много ручных файлов, которые нам нужны для проверки нескольких типов данных перед обработкой фрейма данных.Может кто-нибудь подсказать, пожалуйста, как я могу выполнить это требование.В основном нужно написать одну искровую / общую программу, которая должна работать для многих файлов.если возможно, пожалуйста, пришлите более подробную информацию об этом адресе электронной почты также pathirammi1@gmail.com.

1 Ответ

0 голосов
/ 19 декабря 2018

Интересно, есть ли в ваших файлах записи с разделителем (например, CSV-файл).Если да, вы могли бы очень хорошо прочитать его как текстовый файл и разделить записи на основе и разделитель и обработать их.

import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession

object RDDFromCSVFile {

  def main(args:Array[String]): Unit ={

    def splitString(row:String):Array[String]={
      row.split(",")
    }

    val spark:SparkSession = SparkSession.builder()
      .master("local[1]")
      .appName("SparkByExample")
      .getOrCreate()
    val sc = spark.sparkContext

    val rdd = sc.textFile("randomfile.csv")

    val rdd2:RDD = rdd.map(row=>{
     val strArray = splitString(row)
      val field1 = strArray(0)
      val field2 = strArray(1)
      val field3 = strArray(3)
      val field4 = strArray(4)
      // DO custom code here and return to create RDD
    })

    rdd2.foreach(a=>println(a.toString))
  }

}

Если у вас есть неструктурированные данные, то вы должны использовать приведенный ниже код

import org.apache.spark.sql.SparkSession

object RDDFromWholeTextFile {

  def main(args:Array[String]): Unit = {

    val spark:SparkSession = SparkSession.builder()
      .master("local[1]")
      .appName("SparkByExample")
      .getOrCreate()
    val sc = spark.sparkContext

    val rdd = sc.wholeTextFiles("alice.txt")
    rdd.foreach(a=>println(a._1+"---->"+a._2))

  }
}

Надеюсь, это поможет!Спасибо, Навин

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