下面是我使用spark scala JDBC代码连接到oracle的程序:
/usr/hdp/current/spark2-client/bin/spark-shell --driver-memory 5g --executor-memory 5g --jars /usr/hdp/current/sqoop-client/lib/ojdbc7.jar
import org.apache.spark.sql.SQLContext
val sqlcontext = new org.apache.spark.sql.SQLContext(sc)
val dataframe_mysql = sqlcontext.read.format("jdbc").option("url", "jdbc:oracle:thin:@//Host:1521/QAM").option("driver", "oracle.jdbc.driver.OracleDriver").option("dbtable", "(select * from MGPH.APPLICATION where APPLICATION_ID in (11,12))").option("user", "XXXXXXXXXX").option("password", "xxxxxxxxx").option("fetchsize", "100").load()
dataframe_mysql.show()
火花输出:
scala> dataframe_mysql.show()
+--------------+-------------------+--------------------+--------------------+-----------+----------+------------------+
|c1|c2| c3| c4|c5|c6|c7|
+--------------+-------------------+--------------------+--------------------+-----------+----------+------------------+
| 11| 1|Safire.Accumulato...|Safire Accumulato...| true| 3346| false|
+--------------+-------------------+--------------------+--------------------+-----------+----------+------------------+
Name Null? Type
------------------- -------- -------------
c1 NOT NULL NUMBER(3)
c2 NOT NULL NUMBER(2)
c3 NOT NULL VARCHAR2(50)
c4 NOT NULL VARCHAR2(500)
c5 NOT NULL NUMBER(1)
c5 NUMBER(10)
c7 NUMBER(1)
请参阅文章:http://www.ericlin.me/2017/05/oracle-number10-field-maps-to-boolean-in-spark/和https://github.com/apache/spark/pull/14377。Spark的BooleanType映射到oracle的NUMBER(1)(因为在oracle中没有布尔类型)。因此,在将表读入spark后(通过强制转换或在spark转换中使用布尔值)必须处理此问题。
问题内容: 我有一个表,其中有一个名为的列。其数据类型为。 我想对这一栏进行总结。 总计=> 如何使用ANSI SQL或Oracle SQL执行此操作? 问题答案: 您可以使用来分隔小时,分钟和秒,然后将其向上,最后使用function将其转换为type。
问题内容: 任何数字,就是数字。字符串看起来像一个数字,它是数字。其他所有内容,全都归NaN。 问题答案: 据我所知,有4种方法可以做到这一点。 通过我进行的这项快速测试,它实际上取决于浏览器。 标记为3种浏览器中最快的,但是它使代码难以阅读…因此,请选择您喜欢的任何方式!
问题内容: 是否有任何技术可以允许这样的行设置 产生结果 实际上,这是行到范围的操作。我正在Oracle Land上玩,并且希望您提出任何建议。 问题答案: 我觉得可能可以对此进行改进,但是它可以起作用:
问题内容: 如何在不使用任何第三方库的情况下将JavaScript中的“ 1”转换为“0001”。我已经使用spritf在php中完成了此操作: 问题答案: 这是一个聪明的小把戏(我想我以前在SO上看到过): 如果子字符串的第二个参数为负数,则JavaScript比某些语言宽容得多,因此它会“正确地溢出”(或根据视图的方式错误地溢出): 也就是说,上面的内容: 1->“ 0001” 12345->
本文向大家介绍js中将String转换为number以便比较,包括了js中将String转换为number以便比较的使用技巧和注意事项,需要的朋友参考一下 string没转换就拿去比较,结果是很头疼的 写的时候不细心,就没转换,然后拿去粗略测试下, 1<2 对的,就过了 然后 5.002>21.003 出现奇葩的结果了 在没有转换数据类型进行>,<的判断时候,系统比对的是unicode编码的值,出
问题内容: 我发现一些代码我工作的地方的点被强制转换,因为它是传递给方法。 为什么要这样做? 我知道这个问题涉及重载的方法,并使用类型转换来确定要调用的方法的版本。 但是,如果不执行强制类型转换,如果使用空参数调用该方法,那么是否会重选带有其他类型的参数的重载方法呢?那么演员阵容还能完成什么呢? 问题答案: 如果 未 执行转换,则将选择 最具体的 版本。 可以是type 或type 的空引用。因此