Я узнаю больше о Scala и Spark, но застрял на том, как структурировать функцию, когда я использую две таблицы в качестве входных данных.Моя цель - сжать мой код и использовать больше функций.Я застрял на том, как я структурирую функции при использовании двух таблиц, к которым я собираюсь присоединиться.Мой код без функции выглядит следующим образом:
val spark = SparkSession
.builder()
.master("local[*]")
.appName("XX1")
.getOrCreate()
val df1 = spark.sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("delimiter", ",")
.option("inferSchema", "true")
.load("C:/Users/YYY/Documents/YYY.csv")
// df1: org.apache.spark.sql.DataFrame = [customerID: int, StoreID: int, FirstName: string, Surname: string, dateofbirth: int]
val df2 = spark.sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("delimiter", ",")
.option("inferSchema", "true")
.load("C:/Users/XXX/Documents/XXX.csv")
df1.printSchema()
df1.createOrReplaceTempView("customerinfo")
df2.createOrReplaceTempView("customerorders")
def innerjoinA(df1: DataFrame, df2:Dataframe): Array[String]={
val innerjoindf= df1.join(df2,"customerId")
}
innerjoin().show()
}
Мой вопрос: как правильно определить функцию для innerjoinA (и почему?) И как именно я могу вызвать ее позже в программе?И что еще важнее, что еще я могу отформатировать как функцию в этом примере?