首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Scala,从Java DataFrame创建DataFrame或RDD

使用Scala,从Java DataFrame创建DataFrame或RDD
EN

Stack Overflow用户
提问于 2018-06-13 17:11:48
回答 1查看 892关注 0票数 0

我不想直接使用spark.read方法创建Dataframe或RDD。我想从java结果集(有5,000,00条记录)形成一个dataframe或RDD。感谢你提供一个勤奋的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-28 10:05:37

首先,我们可以使用RowFactory创建行。其次,使用SQLContext.createDataFrame方法可以将所有的行转换成数据格式。希望,这对你也有帮助。)

代码语言:javascript
复制
import java.sql.Connection
import java.sql.ResultSet
import org.apache.spark.sql.RowFactory
import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.Row
import org.apache.spark.sql.SQLContext
import org.apache.spark.sql.types.StringType
import org.apache.spark.sql.types.StructField
import org.apache.spark.sql.types.StructType
代码语言:javascript
复制
var resultSet: ResultSet = null
val rowList = new scala.collection.mutable.MutableList[Row]
var cRow: Row = null
代码语言:javascript
复制
//Resultset is created from traditional Java JDBC.
val resultSet = DbConnection.createStatement().execute("Sql")

//Looping resultset
while (resultSet.next()) {
   //adding two columns into a "Row" object
   cRow = RowFactory.create(resultSet.getObject(1), resultSet.getObject(2))
   //adding each rows into "List" object.
   rowList += (cRow)
}

val sconf = new SparkConf
sconf.setAppName("")
sconf.setMaster("local[*]")
var sContext: SparkContext = new SparkContext(sConf)
var sqlContext: SQLContext = new SQLContext(sContext)

//creates a dataframe
DF = sqlContext.createDataFrame(sContext.parallelize(rowList ,2), getSchema())
DF.show() //show the dataframe.
代码语言:javascript
复制
def getSchema(): StructType = {
    val DecimalType = DataTypes.createDecimalType(38, 10)
    val schema = StructType(
      StructField("COUNT", LongType, false) ::
        StructField("TABLE_NAME", StringType, false) :: Nil)

  //Returning the schema to define dataframe columns.
  schema
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50842790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档