Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 从数据库中获取多个列?_Scala_Apache Spark_Jdbc - Fatal编程技术网

Scala 从数据库中获取多个列?

Scala 从数据库中获取多个列?,scala,apache-spark,jdbc,Scala,Apache Spark,Jdbc,我使用以下代码从数据库表中获取列列表 val result = sqlContext.read.format("jdbc").options(Map( "driver" -> "com.microsoft.sqlserver.jdbc.SQLServerDriver", "url" -> jdbcSqlConn, "dbtable" -> s"...." )).load() .select("column1") //

我使用以下代码从数据库表中获取列列表

val result =
    sqlContext.read.format("jdbc").options(Map(
      "driver" -> "com.microsoft.sqlserver.jdbc.SQLServerDriver",
      "url" -> jdbcSqlConn,
      "dbtable" -> s"...."
    )).load()
    .select("column1") // Now I need to select("col1", "col2", "col3")
    .as[Int]

现在我需要从数据库表中获取多个列,并希望结果是强类型DataSet?。代码应该如何编写

这应该可以做到:-

val colNames = Seq("column1","col1","col2",....."coln")

val result = sqlContext.read.format("jdbc").options(Map(
  "driver" -> "com.microsoft.sqlserver.jdbc.SQLServerDriver",
  "url" -> jdbcSqlConn,
  "dbtable" -> s"...."
)).load().select(colNames.head, colNames.tail: _*)

val newResult = result.withColumn("column1New", result.column1.cast(IntegerType))
.drop("column1").withColumnRenamed("column1New", "column1")