Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/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
Spark-scala-如何将数据帧转换为自定义对象?_Scala_Apache Spark_Apache Spark Sql - Fatal编程技术网

Spark-scala-如何将数据帧转换为自定义对象?

Spark-scala-如何将数据帧转换为自定义对象?,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,这是代码块。在代码片段中,我正在阅读多行json并将其转换为Emp对象 我的问题是行格式的jsondata.rdd.mapemparser方法是否正确?我正在转换为Emp对象的RDD。 1.这是正确的方法。 2.假设我有1L,1M个记录,在这种情况下,任何性能都是错误的。 3.如果您使用的是spark 2,您可以使用类型安全的dataset,它还提供数据帧的性能优势 val df = sqlSession.read.option("multiline", "true").json(filePat

这是代码块。在代码片段中,我正在阅读多行json并将其转换为Emp对象

我的问题是行格式的jsondata.rdd.mapemparser方法是否正确?我正在转换为Emp对象的RDD。 1.这是正确的方法。 2.假设我有1L,1M个记录,在这种情况下,任何性能都是错误的。 3.如果您使用的是spark 2,您可以使用类型安全的dataset,它还提供数据帧的性能优势

val df = sqlSession.read.option("multiline", "true").json(filePath)

import sqlSession.implicits._

val ds: Dataset[Emp] = df.as[Emp]

我用的是spark 2。做valds:Dataset[Emp]=df.as[Emp]就足够了吗。它将如何映射。例如,df有更多的列。但在emp中,有一个限制。@LearnHadoop:列应与数据类型相同,这是此方法的限制。我找不到import sqlSession.implicits.\sqlSession是一个类或任何对象引用。
val df = sqlSession.read.option("multiline", "true").json(filePath)

import sqlSession.implicits._

val ds: Dataset[Emp] = df.as[Emp]