Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.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
Python 通过Spark从JDBC推断的十进制精度_Python_Oracle_Apache Spark_Jdbc_Pyspark - Fatal编程技术网

Python 通过Spark从JDBC推断的十进制精度

Python 通过Spark从JDBC推断的十进制精度,python,oracle,apache-spark,jdbc,pyspark,Python,Oracle,Apache Spark,Jdbc,Pyspark,当试图将数据从JDBCOracle加载到Spark中时,十进制字段中似乎存在精度损失,据我了解Spark支持十进制38,18。甲骨文中的字段是小数38,14,而Spark将最后四位数字舍入为小数38,10。这只发生在dataframe中的一个字段上,而在同一查询中,另一个字段填充正确的模式 尝试在spark submit中传递spark.sql.decimalOperations.allowPrecisionLoss=false conf,但未获得所需的结果 jdbcDF = spark.rea

当试图将数据从JDBCOracle加载到Spark中时,十进制字段中似乎存在精度损失,据我了解Spark支持十进制38,18。甲骨文中的字段是小数38,14,而Spark将最后四位数字舍入为小数38,10。这只发生在dataframe中的一个字段上,而在同一查询中,另一个字段填充正确的模式

尝试在spark submit中传递spark.sql.decimalOperations.allowPrecisionLoss=false conf,但未获得所需的结果

jdbcDF = spark.read \
    .format("jdbc") \
    .option("url", "ORACLE") \
    .option("dbtable", "QUERY") \
    .option("user", "USERNAME") \
    .option("password", "PASSWORD") \
    .load()
因此,考虑到Spark从一个样本记录推断出模式,这在这里是如何工作的?它是否使用查询的结果,即SELECT*FROM TABLE_NAME JOIN。。。或者它是否采取了另一种方式来猜测自己的模式?有没有人能解释一下这一点,并建议如何在不操纵查询的情况下实现正确的十进制精度,因为对查询进行强制转换确实可以解决问题,但更愿意获得一些替代方案