我正在尝试使用Apache Spark,以便将具有多个连接和子选择的(大型)SQL查询的结果加载到来自Spark的DataFrame中,如从SQL查询创建Spark Dataframe中所述。
不幸的是,我这样做的尝试导致了拼花错误:
线程“main”组织中出现异常。阿帕奇。火花sql。AnalysisException:无法推断拼花地板的架构。必须手动指定。
我从谷歌看到的信息表明,当数据帧为空时,就会发生此错误。然而,查询结果在DBeaver中加载了大量行。
下面是一个查询示例:
(SELECT REPORT_DATE, JOB_CODE, DEPT_NBR, QTY
FROM DBO.TEMP
WHERE BUSINESS_DATE = '2019-06-18'
AND STORE_NBR IN (999)
ORDER BY BUSINESS_DATE) as reports
我的Spark代码如下所示。
val reportsDataFrame = spark
.read
.option("url", db2JdbcUrl)
.option("dbtable", queries.reports)
.load()
scheduledHoursDf.show(10)
我在前面的回答中读到,可以使用此方法对整个数据库运行查询。特别是,如果您在Spark中首次构建数据帧时将“dbtable”参数指定为别名查询,则会出现这种情况。您可以看到,我在查询中通过将整个查询指定为别名“as reports”来实现这一点。
我不认为这是一个重复的问题。我对这个具体问题进行了广泛的研究,没有发现任何人在网上面临同样的问题。特别是运行查询导致的拼花错误。
似乎大家一致认为,不应该以这种方式运行SQL查询,而应该使用Spark的DataFrames许多方法来过滤、分组和聚合数据。然而,即使会导致性能下降,但能够使用原始SQL对我们来说也是非常有价值的。
快速查看您的代码告诉我您丢失了。格式(“jdbc”)
val reportsDataFrame = spark
.read
.format("jdbc")
.option("url", db2JdbcUrl)
.option("dbtable", queries.reports)
.load()
如果您设置了用户名和密码以连接到数据库,则应该可以这样做。
了解spark中JDBC源代码的良好资源(https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html)
我使用rdd读取csv文件,只从dataframe中获取一列,并使用scala toArray将其转换为数组。 之后,我在sql中使用这个数组来检查这个数组中是否有一个字段值。 我使用Postgresql和jooq 3.11,但无论我怎么努力,我不能呈现sql,因为它需要。 下面的代码是。但是,它不会生成sql。我在用和,以及()中的相同问题的版本:
本节将学习如何从SQL Server数据库查询数据。从一个简单的查询开始,查询语句用于从单个或多个表中检索数据。 SQL是一种特殊目的的编程语言,它是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的例子,无论是高级查询还是低级查询,SQL查询语
我确信这是一个简单的SQLContext问题,但我在Spark docs或Stackoverflow中找不到任何答案 我想从MySQL上的SQL查询创建一个Spark数据框 例如,我有一个复杂的MySQL查询,如 我想要一个带有X、Y和Z列的数据帧 我想出了如何将整个表加载到Spark中,然后可以将它们全部加载,然后在那里进行连接和选择。然而,这是非常低效的。我只想加载SQL查询生成的表。 这是我
我想过滤掉具有“c2”列前3个字符的记录,无论是“MSL”还是“HCP”。 所以输出应该如下所示。 有谁能帮忙吗? 我知道df。过滤器($c2.rlike(“MSL”))--用于选择记录,但如何排除记录? 版本:Spark 1.6.2 Scala:2.10
问题内容: 我的代码有问题。 像这样的情况: 我有一个下拉列表,如果选择“个人”,则会出现新的下拉列表,其中包含从数据库查询中检索到的数据;如果选择“公开”,则该下拉列表将消失。 这样的HTML代码: 查询如下: 像这样的JavaScript代码: 我不知道如何将值/结果发送到javascript代码(选择选项中的值和名称)。 问题答案: 在javascript中,您必须对您的php文件进行操作:
我正在使用Spark 2.1.0和Java SparkSession来运行我的SparkSQL。我正在尝试保存一个