小编Ett*_*Gur的帖子

Spark sql Dataframe - 导入sqlContext.implicits._

我有main创建spark上下文:

    val sc = new SparkContext(sparkConf)
    val sqlContext = new org.apache.spark.sql.SQLContext(sc)
    import sqlContext.implicits._
Run Code Online (Sandbox Code Playgroud)

然后创建数据帧并对数据帧进行过滤和验证.

    val convertToHourly = udf((time: String) => time.substring(0, time.indexOf(':')) + ":00:00")

    val df = sqlContext.read.schema(struct).format("com.databricks.spark.csv").load(args(0))
    // record length cannot be < 2 
    .na.drop(3)
    // round to hours
    .withColumn("time",convertToHourly($"time"))
Run Code Online (Sandbox Code Playgroud)

这非常有效.

但是当我尝试通过发送数据帧将我的验证移动到另一个文件时

function ValidateAndTransform(df: DataFrame) : DataFrame = {...}
Run Code Online (Sandbox Code Playgroud)

获取Dataframe并进行验证和转换:似乎我需要

 import sqlContext.implicits._
Run Code Online (Sandbox Code Playgroud)

为了避免错误:"value $不是StringContext的成员"在线发生:.withColumn("time",convertToHourly($ "time"))

但要使用 import sqlContext.implicits._ 我还需要sqlContext在新文件中定义,如下所示:

val sc = new SparkContext(sparkConf)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
Run Code Online (Sandbox Code Playgroud)

或发送给

function ValidateAndTransform(df: DataFrame) : DataFrame = …
Run Code Online (Sandbox Code Playgroud)

apache-spark-sql spark-dataframe

14
推荐指数
1
解决办法
2万
查看次数

标签 统计

apache-spark-sql ×1

spark-dataframe ×1