ошибка: разделение значений не является членом (String, Int) - PullRequest
0 голосов
/ 30 мая 2019

Я должен использовать foldByKey в Списке, чтобы найти максимальную цену каждого предмета. Я использую следующие данные:

val itemPrice= List(("Soap",10),("Toaster",200),("Tshirt",400),("Tshirt",1000),("Suits",8000),("Suits",17000),("Soap",100))

Когда я пытаюсь разбить список на отдельные мелкие элементы, выдается ошибка:

 error: value split is not a member of (String, Int)

Я хочу разделить список на отдельные небольшие списки, а затем применить к нему команду foldby, например

val a = itemPrice.map(st =>st.split(",")).foldByKey(("dummy",0.0))((acc,element)=> if (acc._2>element._2) acc else element)

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

1 Ответ

1 голос
/ 30 мая 2019

Похоже, вы хотите, чтобы это работало на этом примере .

Как видите, вам не нужно split. У вас есть 2 варианта:

1) Использование fold -

itemPrice.fold(("dummy", 0.0))((acc, element) => {
  (acc,element)=> if (acc._2>element._2) acc else element
})

2) Используйте foldByKey, но в этом случае вам нужно иметь такие кортежи, как: List(("a", ("Soap",10)), ("b", ("Toaster", 200))) ..

и затем:

`itemPrice.foldByKey(("dummy", 0.0))((acc, element) => {
  (acc,element)=> if (acc._2>element._2) acc else element
})

Опять же, совсем не нужно использовать split.

...