org.apache.spark.sql.execution.SparkSqlParser Scala Examples
The following examples show how to use org.apache.spark.sql.execution.SparkSqlParser.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: parser.scala From tispark with Apache License 2.0 | 5 votes |
package org.apache.spark.sql.extensions import org.apache.spark.sql.catalyst.analysis.UnresolvedRelation import org.apache.spark.sql.catalyst.expressions.{Expression, SubqueryExpression} import org.apache.spark.sql.catalyst.parser._ import org.apache.spark.sql.catalyst.plans.logical._ import org.apache.spark.sql.catalyst.{FunctionIdentifier, TableIdentifier} import org.apache.spark.sql.execution.SparkSqlParser import org.apache.spark.sql.execution.command.{ CacheTableCommand, CreateViewCommand, ExplainCommand, UncacheTableCommand } import org.apache.spark.sql.types.{DataType, StructType} import org.apache.spark.sql.{SparkSession, TiContext} case class TiParser(getOrCreateTiContext: SparkSession => TiContext)( sparkSession: SparkSession, delegate: ParserInterface) extends ParserInterface { private lazy val tiContext = getOrCreateTiContext(sparkSession) private lazy val internal = new SparkSqlParser(sparkSession.sqlContext.conf) private def needQualify(tableIdentifier: TableIdentifier) = tableIdentifier.database.isEmpty && tiContext.sessionCatalog .getTempView(tableIdentifier.table) .isEmpty }
Example 2
Source File: CarbonExtensionSqlParser.scala From carbondata with Apache License 2.0 | 5 votes |
package org.apache.spark.sql.parser import org.apache.spark.sql.{CarbonEnv, CarbonUtils, SparkSession} import org.apache.spark.sql.catalyst.parser.ParserInterface import org.apache.spark.sql.catalyst.plans.logical.LogicalPlan import org.apache.spark.sql.execution.SparkSqlParser import org.apache.spark.sql.internal.SQLConf import org.apache.spark.sql.util.CarbonException import org.apache.carbondata.common.exceptions.sql.MalformedCarbonCommandException import org.apache.carbondata.spark.util.CarbonScalaUtil class CarbonExtensionSqlParser( conf: SQLConf, sparkSession: SparkSession, initialParser: ParserInterface ) extends SparkSqlParser(conf) { val parser = new CarbonExtensionSpark2SqlParser override def parsePlan(sqlText: String): LogicalPlan = { parser.synchronized { CarbonEnv.getInstance(sparkSession) } CarbonUtils.updateSessionInfoToCurrentThread(sparkSession) try { val plan = parser.parse(sqlText) plan } catch { case ce: MalformedCarbonCommandException => throw ce case ex: Throwable => try { val parsedPlan = initialParser.parsePlan(sqlText) CarbonScalaUtil.cleanParserThreadLocals parsedPlan } catch { case mce: MalformedCarbonCommandException => throw mce case e: Throwable => e.printStackTrace(System.err) CarbonScalaUtil.cleanParserThreadLocals CarbonException.analysisException( s"""== Parser1: ${parser.getClass.getName} == |${ex.getMessage} |== Parser2: ${initialParser.getClass.getName} == |${e.getMessage} """.stripMargin.trim) } } } }
Example 3
Source File: ExecuteStatementInClientModeWithHDFSSuite.scala From kyuubi with Apache License 2.0 | 5 votes |
package yaooqinn.kyuubi.operation import java.io.{File, IOException} import scala.util.Try import org.apache.hadoop.fs.Path import org.apache.hadoop.hdfs.{HdfsConfiguration, MiniDFSCluster} import org.apache.hadoop.hive.conf.HiveConf import org.apache.hadoop.hive.ql.session.SessionState import org.apache.hadoop.security.UserGroupInformation import org.apache.spark.sql.catalyst.catalog.FunctionResource import org.apache.spark.sql.execution.SparkSqlParser import org.apache.spark.sql.internal.SQLConf import org.mockito.Mockito.when import yaooqinn.kyuubi.operation.statement.ExecuteStatementInClientMode import yaooqinn.kyuubi.utils.{KyuubiHiveUtil, ReflectUtils} class ExecuteStatementInClientModeWithHDFSSuite extends ExecuteStatementInClientModeSuite { val hdfsConf = new HdfsConfiguration hdfsConf.set("fs.hdfs.impl.disable.cache", "true") var cluster: MiniDFSCluster = new MiniDFSCluster.Builder(hdfsConf).build() cluster.waitClusterUp() val fs = cluster.getFileSystem val homeDirectory: Path = fs.getHomeDirectory private val fileName = "example-1.0.0-SNAPSHOT.jar" private val remoteUDFFile = new Path(homeDirectory, fileName) override def beforeAll(): Unit = { val file = new File(this.getClass.getProtectionDomain.getCodeSource.getLocation + fileName) val localUDFFile = new Path(file.getPath) fs.copyFromLocalFile(localUDFFile, remoteUDFFile) super.beforeAll() } override def afterAll(): Unit = { fs.delete(remoteUDFFile, true) fs.close() cluster.shutdown() super.afterAll() } test("transform logical plan") { val op = sessionMgr.getOperationMgr.newExecuteStatementOperation(session, statement) .asInstanceOf[ExecuteStatementInClientMode] val parser = new SparkSqlParser(new SQLConf) val plan0 = parser.parsePlan( s"create temporary function a as 'a.b.c' using file '$remoteUDFFile'") val plan1 = op.transform(plan0) assert(plan0 === plan1) assert( ReflectUtils.getFieldValue(plan1, "resources").asInstanceOf[Seq[FunctionResource]].isEmpty) val plan2 = parser.parsePlan( s"create temporary function a as 'a.b.c' using jar '$remoteUDFFile'") val plan3 = op.transform(plan2) assert(plan3 === plan2) assert( ReflectUtils.getFieldValue(plan3, "resources").asInstanceOf[Seq[FunctionResource]].isEmpty) } test("add delegation token with hive session state, hdfs") { val hiveConf = new HiveConf(hdfsConf, classOf[HiveConf]) val state = new SessionState(hiveConf) assert(Try { KyuubiHiveUtil.addDelegationTokensToHiveState(state, UserGroupInformation.getCurrentUser) }.isSuccess) val mockuser = mock[UserGroupInformation] when(mockuser.getUserName).thenThrow(classOf[IOException]) KyuubiHiveUtil.addDelegationTokensToHiveState(state, mockuser) } }