Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
如何通过Spark加速将Oracle视图加载到HDFS?_Oracle_Apache Spark_Parallel Processing_Apache Spark Sql - Fatal编程技术网

如何通过Spark加速将Oracle视图加载到HDFS?

如何通过Spark加速将Oracle视图加载到HDFS?,oracle,apache-spark,parallel-processing,apache-spark-sql,Oracle,Apache Spark,Parallel Processing,Apache Spark Sql,为了加快表的加载速度,我们获取rowid,对其进行散列,并对其进行分区。代码如下。然而,视图并没有rowid,并且在不确定划分哪个列的情况下,我们没有一个通用的并行摄取解决方案。有没有一种方法可以并行地摄取视图,而不具体化视图 spark.read.format("jdbc") .option("url", url) .option("user", username) .option("password", new String(decrypt(decodeBase64(

为了加快表的加载速度,我们获取rowid,对其进行散列,并对其进行分区。代码如下。然而,视图并没有rowid,并且在不确定划分哪个列的情况下,我们没有一个通用的并行摄取解决方案。有没有一种方法可以并行地摄取视图,而不具体化视图

spark.read.format("jdbc")
    .option("url", url)
    .option("user", username)
    .option("password", new String(decrypt(decodeBase64(encryptedPassword), key), "UTF-8"))
    .option("driver", "oracle.jdbc.driver.OracleDriver")
    .option("dbtable", query)
    .option("numPartitions", numPartitions)
    .option("lowerBound", 0)
    .option("upperBound", numPartitions)
    .option("partitionColumn", s"mod(ora_hash(rowid),${numPartitions})+1")
    .option("oracle.net.networkCompression", "on")
    .option("SDU", OracleSDU)
    .option("fetchsize", FetchSize)
    .load()

第一个想法:从视图中使用的表中公开rowid,或者作为键执行一些
row_number()(按rowid排序)
不在我的视图中,因为可能有很多joibs在下面