Я пытаюсь выбрать определенные атрибуты в списке типа класса дела. Позволь мне объяснить
Это мой файл test.txt:
india|M|IND|P|15951124869|15
usa|F|usa|R|15951178869|25
australia|M|aus|S|15951189869|35
kenya|M|KN|F|15956624869|55
russia|M|rus|u|15981124869|75
china|T|ch|L|15951128869|95
england|F|eng|Z|15959124869|65
germany|F|ger|I|15987124869|25
finland|M|fin|H|15967124869|45
singapore|F|sing|I|15956124869|65
Класс корпуса:
case class Deshi(country: String, gender: String, countryCode: String, statusJi: String, gadiNumber: String, age: String)
defined class Deshi
Чтение файла test.txt:
scala> val deshiLines=readFileC("/Users/neha.gambhir/Desktop/test.txt")
deshiLines: List[String] = List(india|M|IND|P|15951124869|15, usa|F|usa|R|15951178869|25, australia|M|aus|S|15951189869|35, kenya|M|KN|F|15956624869|55, russia|M|rus|u|15981124869|75, china|T|ch|L|15951128869|95, england|F|eng|Z|15959124869|65, germany|F|ger|I|15987124869|25, finland|M|fin|H|15967124869|45, singapore|F|sing|I|15956124869|65)
Это мой список типов кейсов:
scala> val nayaDeshiList=deshiLines.map{ raw_line =>
| val columns = raw_line.split("\\|")
| Deshi(columns(0), columns(1), columns(2), columns(3), columns(4), columns(5))
| }
nayaDeshiList: List[Deshi] = List(Deshi(india,M,IND,P,15951124869,15), Deshi(usa,F,usa,R,15951178869,25), Deshi(australia,M,aus,S,15951189869,35), Deshi(kenya,M,KN,F,15956624869,55), Deshi(russia,M,rus,u,15981124869,75), Deshi(china,T,ch,L,15951128869,95), Deshi(england,F,eng,Z,15959124869,65), Deshi(germany,F,ger,I,15987124869,25), Deshi(finland,M,fin,H,15967124869,45), Deshi(singapore,F,sing,I,15956124869,65))
Я хочу выбрать только country, gender, age
из nayaDeshiList
выше. Поскольку этот nayaDeshiList
тип относится к классу Deshi
, поэтому я сделал nayaDeshiList.type
, nayaDeshiList.country
, который у меня не работает. Может кто-нибудь предложить мне лучший подход?
Примечание. Меня интересует только решение этой проблемы с использованием чистого Scala, а не на каком-либо вычислительном механизме, таком как Spark.
Вывод: вывод должен сохранять тип класса. Например, он должен быть того же типа, как этот nayaDeshiList: List[Deshi]
. Единственная разница в том, что он должен содержать только определенные столбцы, как указано выше. Спасибо