error: value createSchemaRDD is not a member of org.apache.spark.sql.SQLContext

本文档介绍了在Spark 1.3之后如何将旧的createSchemaRDD方法替换为implicits,以适应SQLContext的更新。内容涵盖了适配新的API和可能遇到的问题解决方案。
<console>:23: error: value createSchemaRDD is not a member of org.apache.spark.sql.SQLContext

在这里插入图片描述

在spark1.3以后spark SQL取消了createSchemaRDD,改为了implicits。

import sqlContext.implicits._

在这里插入图片描述

scala> // 导入必要的包 scala> import org.apache.spark.sql.SparkSession import org.apache.spark.sql.SparkSession scala> import org.elasticsearch.spark.sql._ import org.elasticsearch.spark.sql._ scala> scala> // 创建SparkSession实例 scala> val spark = SparkSession.builder() spark: org.apache.spark.sql.SparkSession.Builder = org.apache.spark.sql.SparkSession$Builder@71e5cd05 scala> .appName("ElasticsearchReadExample") res0: org.apache.spark.sql.SparkSession.Builder = org.apache.spark.sql.SparkSession$Builder@71e5cd05 scala> .getOrCreate() res1: org.apache.spark.sql.SparkSession = org.apache.spark.sql.SparkSession@61267fa2 scala> scala> // 查看spark变量的类型,确保是SparkSession scala> println(spark.getClass) class org.apache.spark.sql.SparkSession$Builder scala> scala> val defaultQuery: String = "?q=phone_no:5143217" defaultQuery: String = ?q=phone_no:5143217 scala> val esTable = "mediamatch_usermsg" esTable: String = mediamatch_usermsg scala> val options = Map( | ("es.nodes", "master"), | ("es.port", "9200"), | ("es.read.metadata", "false"), | ("es.mapping.date.rich", "false"), | ("es.net.http.auth.user", "elastic"), | ("es.net.http.auth.pass", "i55on9YR90t+r8z8-OSpi"), | ("es.nodes.wan.only", "true") | ) options: scala.collection.immutable.Map[String,String] = Map(es.nodes.wan.only -> true, es.net.http.auth.user -> elastic, es.net.http.auth.pass -> i55on9YR90t+r8z8-OSpi, es.mapping.date.rich -> false, es.port -> 9200, es.read.metadata -> false, es.nodes -> master) scala> scala> val esDf = spark.esDF(esTable, defaultQuery, options) <console>:30: error: value esDF is not a member of org.apache.spark.sql.SparkSession.Builder val esDf = spark.esDF(esTable, defaultQuery, options) ^ scala> esDf.select("phone_no", "owner_name", "owner_code", "run_name", "run_time").show() <console>:27: error: not found: value esDf esDf.select("phone_no", "owner_name", "owner_code", "run_name", "run_time").show() ^ scala> val df = spark.read.format("org.elasticsearch.spark.sql") <console>:27: error: value read is not a member of org.apache.spark.sql.SparkSession.Builder val df = spark.read.format("org.elasticsearch.spark.sql") ^ scala> .options(options) <console>:28: error: value options is not a member of scala.collection.immutable.Map[String,String] options .options(options) ^ scala> .load(s"$esTable/$defaultQuery") <console>:30: error: value load is not a member of scala.collection.immutable.Map[String,String] options .load(s"$esTable/$defaultQuery") ^ scala> scala> df.select("phone_no", "owner_name", "owner_code", "run_name", "run_time").show() <console>:27: error: not found: value df df.select("phone_no", "owner_name", "owner_code", "run_name", "run_time").show() ^ scala> import org.elasticsearch.spark.sql._ // 确保此行有效 import org.elasticsearch.spark.sql._ scala> implicit none => _root_.org.elasticsearch.spark.sql.EsSparkSQL.registerFunctions(spark.sqlContext) <console>:1: error: expected start of definition implicit none => _root_.org.elasticsearch.spark.sql.EsSparkSQL.registerFunctions(spark.sqlContext) ^ scala>
最新发布
03-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangvalue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值