У меня есть файл с 10 столбцами. Какой самый элегантный способ извлечь только первые 3 столбца или конкретные столбцы?Извлечь только определенные столбцы в Java Spark
Например, это как мой файл выглядит следующим образом:
john,smith,84,male,kansas
john,doe,48,male,california
tim,jones,22,male,delaware
И я хочу, чтобы извлечь в этом:
[john, smith, kansas]
[john, doe, california]
[tim, jones, delaware]
Что у меня есть, но это не специально выбрал столбцы, которые я хочу:
JavaRDD<String> peopleRDD = sc.textFile(DATA_FILE);
peopleRDD.cache().map(lines -> Arrays.asList(lines.split(",")))
.forEach(person -> LOG.info(person));
Я прочитал followingtwo Stack но я все еще не могу решить, как это сделать.
EDIT: я в конечном итоге делает следующее:
JavaRDD<String> peopleRDD = sc.textFile(DATA_FILE);
peopleRDD.cache().map(lines -> Arrays.asList(new String[]{lines.split(",")[0],
lines.split(",")[1],
lines.split(",")[3]}
.forEach(person -> LOG.info(person));
Не самое элегантное решение, но если у вас есть лучший способ, пожалуйста, напишите здесь. Благодарю.
Лично я бы использовал SparkSQL + Dataframes. К сожалению, я знаю только реализацию Python, но здесь есть [документация для этого] (http://spark.apache.org/docs/latest/sql-programming-guide.html#inferring-the-schema- using-reflection) –