Сравнение двух массивов Scala 2D: получение ошибки: значение sameElements не является членом (String, String) - PullRequest
0 голосов
/ 01 января 2019

Привет, я пытаюсь выполнить следующую операцию в Scala:

У меня есть 2 кадра данных.Я хочу сравнить их имена столбцов, а затем типы столбцов.Я начал с извлечения имен столбцов. Затем я отсортировал массив и, наконец, напечатал его

val df1colArr = df1.dtypes

val df2colArr = df2.dtypes


Sorting.quickSort(df1colArr)
Sorting.quickSort(df2colArr)


println(df1colArr.deep.mkString("\n"))
println(df2colArr.deep.mkString("\n"))

Вывод выглядит так:

(age,IntegerType)
(color,StringType)
(dealer_id,StringType)
(first_name,StringType)
(id,IntegerType)
(last_name,StringType)
(loyalty_score,StringType)
(model,StringType)
(purchase_date,TimestampType)
(purchase_price,StringType)
(rank_dr,IntegerType)
(service_date,TimestampType)
(vin_num,StringType)

(age,IntegerType)
(color,StringType)
(dealer_id,StringType)
(first_name,StringType)
(id,IntegerType)
(last_name,StringType)
(loyalty_score,IntegerType)
(model,StringType)
(purchase_date,TimestampType)
(purchase_price,StringType)
(rank_dr,IntegerType)
(repeat_likely,IntegerType)
(service_date,TimestampType)
(vin_num,StringType)

Далее у меня есть простая утилита для сравнения 2 массивов.выше на основе их значения по индексу 0:

val col_similar: ( Array[(String,String)], Array[(String, String)] )=> String 
= (x,y) => {if (x(0).sameElements(y(0))) "similar" else "different"}

, когда я запускаю вышеуказанный код.Я получаю следующую ошибку:

Error:(59, 105) value sameElements is not a member of (String, String)
val col_similar: ( Array[(String,String)], Array[(String, String)] ) => String 
= (x,y) => {if (x(0).sameElements(y(0))) "similar" else "different"}

Пожалуйста, помогите мне понять, почему этот код не работает .... Большое спасибо

1 Ответ

0 голосов
/ 01 января 2019

x(0) - это пара строк.Если вы хотите сравнить массивы пар x и y, то сделайте это:

if (x sameElements y) ... else ...

Кстати, я сомневаюсь, что этот подход будет масштабироваться до реальных наборов данных - сбор всего кадра данных вМастер-узел, как правило, плохая идея.Может быть, вы можете найти лучших идей здесь .

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