выбрать конкретные столбцы после объединения двух информационных кадров в спарк - PullRequest
0 голосов
/ 24 сентября 2018

Я присоединился к двум фреймам данных и сейчас пытаюсь получить отчет, состоящий из столбцов из обоих фреймов данных.Я пытался использовать .select (cols = String *), но он не работает.

Также описанный метод здесь , похоже, не решает мою проблему.

Ниже приведенкод.val full_report - вот где мне нужно получить столбцы.

import org.apache.spark.sql.types._

object read_data {


  def main (args:Array[String]) {

    val spark = org.apache.spark.sql.SparkSession.builder
      .master("local")
      .appName("Spark CSV Reader")
      .getOrCreate;


    val customSchema = StructType(Array(
      StructField("order_id", IntegerType, true),
      StructField("parent_order_uuid", StringType, true),
      StructField("company", StringType, true),
      StructField("country_id", IntegerType, true)))

    val readogp = spark.read.format("csv")
      .option("header", "false")
      .schema(customSchema)
      .load("/home/cloudera/Desktop/ogp_csv.csv")

    readogp.show()

    val read_country = spark.read.format("csv")
      .option("header", "true")
      .load("/home/cloudera/Desktop/country.csv")

    read_country.show()

    println("************************************************************************")

   val full_report  = readogp.join(read_country, readogp.col("country_id") === read_country.col("country_id"))
       .select(readogp.select("order_id" + "parent_order_id"))  

    full.show()

  }

}

Пожалуйста, дайте мне знать, как я могу преодолеть это препятствие.

1 Ответ

0 голосов
/ 24 сентября 2018

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

По вашему примеру:

val full_report_df  = readogp.join(read_country, readogp.col("country_id") == read_country.col("country_id"))

val full_report = full_report_df.select("order_id","parent_order_id")  

// Below will show 10 records for 2 columns order_id, parent_order_id.

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