Пытался сгенерировать последовательность в Oracle для записей через чтение PySpark JDBC.
from pyspark.sql import SparkSession
if __name__ == '__main__':
spark = SparkSession.builder.master("local")\
.appName("Seq_num")\
.getOrCreate()
jdbcDF = spark.read \
.format("jdbc") \
.option("url", "URL") \
.option("dbtable", "(SELECT SEQ.NEXTVAL FROM DUAL) qry") \
.option("user", "USER") \
.option("password", "PWD") \
.load()
jdbcDF.show(2)
Это дает мне ошибку
py4j.protocol.Py4JJavaError: An error occurred while calling o50.load.
: java.sql.SQLSyntaxErrorException: ORA-02287: sequence number not allowed here
В качестве альтернативы можно было использовать вышеприведенный прогон с использованием cur.execute(query)
, который предоставил бы мне кортежи.Есть ли другой способ достичь вышеуказанного, чтобы я мог сэкономить время при преобразовании кортежей в Dataframe.