2017-08-25 3 views
0

これは本当に奇妙に聞こえますが、oracleデータベースがありますが、oracleデータベースからspark sqlを使用して選択しようとしていますが、データベースでは、私はスカラから起動された要求でそれを見つけることができません。だから、私は私がカウントのミスマッチ - oracleデータベースセッションとoracleの照合中にspark sql

val sparkSession = SparkSession.builder.master("local").appName("spark session example").getOrCreate() 
    //connect to table TMP_STRUCTURE oracle 
    val spark = sparkSession.sqlContext 
    val df = spark.load("jdbc", 
    Map("url" -> "jdbc:oracle:thin:IPTECH/[email protected]//localhost:1521/XE", 
     "dbtable" -> "TMP_STRUCTURE")) 


    println(df.count()) 
373797 

を入れたときに、私は理由を見つけることができません373799

を得たオラクルコンソールからデータ

select count (*) from TMP_STRUCTURE 

を出たの数を計算してみましたか?

助けてください。

答えて

2

2回のチャンス

  • ケース1があるかもしれないので、これはかなり不可能です:あなたはOracleセッションからのコミットされていないデータを読み込むことが可能性があり、スパークSQLを介して、あなたがコミットされたデータセットを読み込むことがあります。 (コミットを実行して、再度チェックしてください)

  • ケース2:oracleセッションからは、ほぼ同じ行数を持つ別のデータベースに接続している可能性があります。 spark sql に異なるデータベースを使用している可能性があります(接続しようとした両方のデータベースが同じであることを確認してください)

関連する問題