Simba ODBC 连接到增量表并使用 .Net C# 从增量格式表读取数据

2023-11-30

我正在尝试使用 C# 通过 simba odbc 驱动程序从增量格式表中读取数据。 增量格式表示例:

已按照中的说明下载并配置 simba odbchttps://www.simba.com/products/Spark/doc/ODBC_InstallGuide/mac/content/odbc/configuring/drivermanager.htm

经过此配置后,我能够成功连接到 Spark Thrift 服务器。但是,我无法从增量格式表中读取数据。

using(dbConnection)
            {
                dbConnection.Open();
                Console.WriteLine("Connection Open!");
                OdbcCommand dbCommand = dbConnection.CreateCommand();
                dbCommand.CommandText =  "SELECT * FROM accnt LIMIT 10"; 
                OdbcDataReader dbReader = dbCommand.ExecuteReader();
                if(dbReader.HasRows)
                {
                    while(dbReader.Read())
                    {
                        Console.WriteLine("{0}\t{1}\t{2}", 
dbReader.GetString(0),dbReader.GetString(1), dbReader.GetString(2));
dbReader.GetString(1));
                    }
                }
                else
                {
                    Console.WriteLine("No Rows Found.");
                }
                Console.WriteLine("Connection Close  !");
            }

错误消息是:

Unhandled exception. System.Data.Odbc.OdbcException (0x80131937): ERROR [HY000] [Simba][Hardy] (35) Error from server: error code: '0' error message: 'Error running query: java.lang.ClassNotFoundException: DELTA.DefaultSource'.
   at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
   at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod)
   at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader)
   at System.Data.Odbc.OdbcCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.Odbc.OdbcCommand.ExecuteReader()
   at cdp_deltalake_poc.Program.Main(String[] args)

启动 Thrift 服务器时,您需要添加配置选项和 Delta Lake 包。这与向 Spark 提交应用程序的方式相同。例如:

sbin/start-thriftserver.sh \
  --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension \
  --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog \
  --packages 'io.delta:delta-core_2.12:0.8.0'

您需要根据 Spark 版本调整 Delta Lake 包的版本(我确实使用了 0.8.0 和 Spark 3.0.1)。

之后我可以查询我创建的数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Simba ODBC 连接到增量表并使用 .Net C# 从增量格式表读取数据 的相关文章

  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 什么可以解释托管堆上超过 5,000,000 个 System.WeakReference 实例?

    我一直在针对生产 ASP NET Web 应用程序运行负载测试 并且看到在堆上创建了大量 System WeakReference 在大约 15 分钟内 负载管理堆内存已飙升至大约 3GB 并且我有大约 5 000 000 个对 Syste
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • 如何在TYPO3 CMS后端重命名副标题

    如何为作者重命名 TYPO3 CMS 后端字段 即提到的 csc styled content 内容元素字段 一般来说 覆盖标签名称可以通过后端的 Page TSconfig 来完成 下面的例子修改了标签subheader field TC
  • 你调用的对象是空的

    我有一个单元格类 public class Cell public enum cellState WATER SCAN SHIPUNIT SHOT HIT public Cell currentCell cellState WATER Me
  • 静态变量的动态初始化阶段

    该标准特别指出 静态持续时间变量 命名空间范围和类静态成员 的动态初始化不必在执行 main 之前发生 命名空间范围的对象的动态初始化 8 5 9 4 12 1 12 6 1 是否在 main 的第一个语句之前完成 是由实现定义的 IS 3
  • Jenkins-pipeline 从 groovy 中的属性文件中提取并设置变量

    首先 我将管道完全编写为 groovy 以便签入 git 请不要提供任何gui必要的解决方案 我的问题陈述是 从文件中提取变量并将其设置为等于 groovy 对象 我尝试过的 def SERVICE MAJOR VERSION node r
  • JavaScript Promise 通过 setTimeout 解决

    我不明白为什么第一个 setTimeout 函数起作用 但第二个函数不起作用 当我运行第二个 setTimeout 时 第一个被注释掉 但不是 3 秒后解决 而是立即解决 我对整个 承诺 事物很陌生 我正在学习的教程经常使用带有 setTi
  • Android 应用程序的数据大小增加是 Glide 造成的吗?

    当我使用 glide 库打开并加载少量 100 张图像时 Android 应用程序的数据大小增加了 13MB 我没有管理 glide 的任何缓存属性 全部设置为默认值 glide 的磁盘缓存是否有可能导致此问题 注意 图像大小范围为 100
  • 不可重复读和幻读有什么区别?

    有什么区别不可重复读 and 幻读 我已阅读维基百科的隔离 数据库系统 文章 但我有一些疑问 在下面的示例中 将会发生什么 不可重复读 and 幻读 交易A SELECT ID USERNAME accountno amount FROM
  • 引用变量在内存中是如何表示的?

    int num 0 int ptrNum num int refNum num 内存表 1 和表 2 中引用变量的正确表示哪一个是 如果表2 那么为什么指针是对象而引用不是 如果两种表示都不正确 请提供正确的表示并解释为什么引用不是对象 内
  • 迭代枚举类实例

    有没有一种简单的方法可以迭代 Ceylon 中类的所有枚举实例 就像values 对于 Java 枚举 abstract class Suit of hearts diamonds clubs spades shared formal St
  • 如何在 C 中捕获进程输出?

    有没有用 C 语言模拟 PHP 系统的情况 man system说 那system返回命令的状态 但我需要输出 就像在 PHP 中一样 当然 我可以使用管道来实现这一点 但是有什么标准的方法吗 您可以利用popen相关函数为 command
  • 使用交叉编译器为arm编译原生GCC

    我正在寻找为 ARM 系统创建 GCC 的本机版本 但遇到了一些麻烦 构建机器是 i686 linux 我看到的每个教程都告诉我如何设置实际的交叉编译套件 我已经使用 crosstools ng 完成了 但是 我没有看到任何与编译本机 AR
  • EXTJS 5 - 仅日期选择器年和月

    我想这个问题已经被问了很多次 因为我发现了一些有关它的主题 但我仍然不知道如何通过仅显示月份和年份来呈现日期选择器 我想我可以用不同的方式来做这件事 创建我自己的 cuctom 组件 但我认为我对 Extjs 的了解还不够好 无法创建一个显
  • 是否有一行语法用于构造包含对临时对象的引用的结构?

    考虑以下无效的 Rust 代码 有一个结构体Foo包含对第二个结构的引用Bar struct Foo lt a gt bar a Bar impl lt a gt Foo lt a gt fn new bar a Bar gt Foo lt
  • PHP 使用函数返回值作为数组

    为什么这有效 cacheMatchesNotPlayed cache gt load externalData cacheMatchesNotPlayed cacheMatchesNotPlayed matchesNotPlayed 但这不
  • 帕斯卡的三角行序列

    我目前正在努力寻找帕斯卡三角形的行序列 我想输入行号并输出列表中直到该行的数字序列 例如 Pascal 4 会给出结果 1 1 1 1 2 1 1 3 3 1 我正在尝试使用我发现的算法 这是算法本身 Vc Vc 1 r c c r and
  • MySQL:选择日期范围内的所有日期并获取与日期匹配的表数据

    有一个表 其中包含这样的数据 id date 1 2016 07 11 2 2016 07 11 3 2016 07 15 4 2016 07 15 5 2016 07 15 6 2016 07 16 7 2016 07 19 8 2016
  • Android EditText setError() 无法按预期工作

    我有问题setError on EditText 当活动打开时 它会检查某些字段是否为空 如果为空 则在其上设置错误消息 但是 只有当我在字段中写入一些文本然后将其删除时 才会显示感叹号图标 如果我失去对该字段的关注 该图标将再次消失 两个
  • Hadoop Mapreduce 控制台输出说明

    我是hadoop环境的新手 我已经设置了2节点hadoop集群 然后我运行示例 MapReduce 应用程序 实际上是字数 然后我得到这样的输出 File System Counters FILE Number of bytes read
  • 关于 unique_ptr 性能

    我经常读到 在大多数情况下 unique ptr 会比 share ptr 更受青睐 因为 unique ptr 是不可复制的 并且具有移动语义 由于复制和引用计数 shared ptr 会增加开销 但是当我在某些情况下测试 unique
  • Simba ODBC 连接到增量表并使用 .Net C# 从增量格式表读取数据

    我正在尝试使用 C 通过 simba odbc 驱动程序从增量格式表中读取数据 增量格式表示例 已按照中的说明下载并配置 simba odbchttps www simba com products Spark doc ODBC Insta