Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Apache spark Oracle“alter session set EDITION..”似乎无法使用选项sessionInitStatement_Apache Spark_Pyspark_Apache Spark Sql_Pyspark Sql - Fatal编程技术网

Apache spark Oracle“alter session set EDITION..”似乎无法使用选项sessionInitStatement

Apache spark Oracle“alter session set EDITION..”似乎无法使用选项sessionInitStatement,apache-spark,pyspark,apache-spark-sql,pyspark-sql,Apache Spark,Pyspark,Apache Spark Sql,Pyspark Sql,我想从激活Oracle edition功能时可见的视图中进行选择 alter session set EDITION=MYEDITION view1 view1_edition1 => this view is only visible after the alter session statement above which is Oracle edition feature. 在蟾蜍身上,一切都很好。我触发上面的alter session语句,并且可以成功地从该视图中进行选择 我试

我想从激活Oracle edition功能时可见的视图中进行选择

alter session set EDITION=MYEDITION

view1
view1_edition1 => this view is only visible after the alter session statement above which is Oracle edition feature.
在蟾蜍身上,一切都很好。我触发上面的alter session语句,并且可以成功地从该视图中进行选择

我试图在Spark中实现这一点,但没有成功。从view1\u edition1中选择返回对象不存在

df = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:oracle:thin:@db_server:1520/SERVICE") \
    .option("driver", "oracle.jdbc.driver.OracleDriver") \
    .option("dbtable", "(select name from schema1.view1_edition1)") \
    .option("user", "user") \
    .option("password", "password") \
    .option("sessionInitStatement","""alter session set EDITION=MYEDITION""") \
    .load()
为了证明版本是活动的,我在spark.read中启动下面的选择,它返回正确的版本为活动的

  (
WITH a AS (SELECT name FROM SCHEMA1.TABLE1)
     ,b AS (SELECT SYS_CONTEXT('USERENV', 'SESSION_EDITION_NAME') AS 
     edition FROM DUAL)
SELECT name,edition
FROM a
CROSS JOIN b
)

在从Oracle JDBC数据源获取连接之前,请尝试使用Java属性设置版本名称,而不是alter session

e、 g。, p、 putoracle.jdbc.editionName,MyEdition; ...
ods.setConnectionPropertiesp

在从Oracle JDBC数据源获取连接之前,请尝试使用Java属性设置版本名称,而不是alter session

e、 g。, p、 putoracle.jdbc.editionName,MyEdition; ...
ods.setConnectionPropertiesp

谢谢!它成功了,谢谢!它成功了。