有没有一种方法可以限制使用spark sql 2.2.0从jdbc源获取的记录数?
我正在处理将一个大于200M的记录从一个MS Sql Server表移动(和转换)到另一个MS Sql表的任务:
val spark = SparkSession
.builder()
.appName("co.smith.copydata")
.getOrCreate()
val sourceData = spark
.read
.format("jdbc")
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
.option("url", jdbcSqlConnStr)
.option("dbtable", sourceTableName)
.load()
.take(limit)
在工作的同时,很明显,它首先要从数据库中加载所有200M条记录,首先要花18分钟的时间,然后将我希望用于测试和开发目的的有限数量的记录返回给我。
在take(…)和load()之间切换会产生编译错误。
我很欣赏有几种方法可以将样本数据复制到较小的表中,使用SSIS或其他etl工具。
我真的很好奇是否有一种方法可以使用spark,sql和jdbc实现我的目标。
要限制下载的行数,可以使用SQL查询代替“
dbtable”中的表名。文档中的描述。
在查询中,可以指定“ where”条件,例如,使用特定于服务器的功能来限制行数(例如Oracle中的“ rownum”)。
我正在寻找一种解决方案,能够在Apache Spark节点上执行代码时记录额外的数据,这有助于调查稍后在执行过程中可能出现的一些问题。尝试使用传统的解决方案,例如失败,因为无法在Apache Spark这样的分布式环境中序列化日志实例。 我已经研究了这个问题,现在我发现的解决方案是使用特性如下: 然而,日志特性似乎不是Apache Spark的永久解决方案,因为它被标记为,并且类留档提到: 这可能
Scala\u Spark\u DataFrameReader\u csv的文档表明,Spark可以记录在读取时检测到的格式错误的行。csv文件 -如何记录格式错误的行 -是否可以获取包含格式错误行的val或var? 链接文档中的选项是:maxMalformedLogPerPartition(默认值10):设置Spark将为每个分区记录的最大错误行数。超过此数字的格式错误记录将被忽略
问题内容: 如何查看我的池库(C3P0)创建和关闭JDBC连接的时间? 注意:我已经对此进行了研究,并且已经找到了解决方案。我将其发布在这里,以便对其他人有用,并且可以参考以防万一将来忘记它。 欢迎其他方法/答案。 问题答案: 库可用于记录JDBC连接。将此库添加到POM- 配置。修改日志记录选项以根据自己的需要调整详细信息级别。 配置数据源。 关于上述数据源配置的注意事项: 您通常的驱动程序类名
如何在不创建多个字符串的情况下获得所有列和记录?假设我在那个表中有10列,我不需要把它存储到一个对象中 谢了。
在MariaDB数据库中,使用语句和子句从表中检索一个或多个记录。 语法: 示例1: 以降序检索记录: 使用语句并带有子句查询表中的数据。结果列的值按降序显示,为。参考如下语句 - 执行上面查询语句,得到以下结果 - 示例2: 按列的值升序检索记录: 执行上面查询语句,得到以下结果 - 示例3:分页 在应用程序中,由于数据记录太多,不能全在一个页面中全部显示,我们经常要使用分页来显示。假设每页显示
问题内容: 我有一个数据库,有两个表和。表中有一个主键,表中有一个外键。 我想在表上创建一个约束,表中最多可以存储5个约束。 我需要知道这种约束的类型,以及如何通过SQL Server中的查询来完成此约束。 问题答案: 没有约束可以强制执行该规则,但是可以使用如下所示的触发器来做到这一点: