Как отфильтровать данные из Rdd и сохранить их в текстовом файле, используя scala в спарк - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть два набора данных в формате TSV. Я хочу прочитать оба файла TSV в spark scala и выполнить анализ. Файл 1 содержит данные августа, а файл 2 - данные сентября. Как мне прочитать оба файла TSV, используя scala в спарк и сохранить вывод в другой файл TSV. Я хочу использовать операцию пересечения на обоих RRD

Ниже приведены два формата файла TSV. Файл 1

enter image description here

Файл 2

enter image description here

Выходной файл должен иметь App_Name, к которому обращаются оба месяца.

Выходные данные файла.

enter image description here

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Пересечение - это не что иное, как внутреннее соединение, просто выполните операцию внутреннего соединения на обоих кадрах данных. См. Spark SQL Соединения

val df = df1.join(df2, Seq("APP_NAME"), "inner")
0 голосов
/ 27 апреля 2020
val dfTsv1 = spark.read.format("com.databricks.spark.csv")
      .option("delimiter", "\t")
      .load("filepath1")
    val dfTsv2 = spark.read.format("com.databricks.spark.csv")
      .option("delimiter", "\t").load("filepath2")


    val duplicateColumns = List("") // put your duplicate column names here 
    val outputDf = dfTsv1.alias("tcv1").join(dfTsv2.alias("tcv2"),dfTsv1("ACCESSED_MONTH") === dfTsv1("ACCESSED_MONTH"))
      .drop(duplicateColumns: _*)

    outputDf.show()

...