如何在 spark - scala 中使用 select() 和 map()?

how to use select() and map() in spark - scala?

我正在编写使用 spark 将数据从 mysql 迁移到 cassandra 的代码。我试图概括它,以便给定一个 conf 文件,它可以迁移任何 table。我在这里停留在 2 个地方:

  1. val dataframe2 = dataframe.select("a","b","c","d","e","f") 从 mysql 加载 table 后,我希望只 select 几列,我将这些列的名称作为列表。这里怎么用?
  2. val RDDtuple = dataframe2.map(r => (r.getAs(0), r.getAs(1), r.getAs(2), r.getAs(3), r.getAs(4), r.getAs(5))) 同样,每个 table 可能有不同数量的列,那么如何实现呢?
  1. 要在 select() 中使用可变数量的列,可以像这样转换您的列列表:

val columns = List("a", "b", "c", "d") val dfSelectedCols = dataFrame.select(columns.head, columns.tail :_*)

说明:DataFrame's select(String, String...)中的第一个参数是必须的,所以使用columns.head。列表的其余部分需要使用 columns.tail :_*.

转换为可变参数
  1. 你的例子不是很清楚,但我想 x 是一个 RDD[Row] 并且你正试图转换成 RDDTuple , 正确的 ?请提供更多详细信息并使用有意义的变量名称。 xyz 是错误的选择,尤其是在没有显式输入的情况下。