当前位置: 首页 > 知识库问答 >
问题:

使用CSV-JDBC驱动程序读取不带头的CSV文件

欧桐
2023-03-14

我正在使用http://csvjdbc.sourceforge.net/doc.html要将磁盘上的CSV文件(例如“myDir”中的“myFile”)视为SQL DB,我可以使用SQL语法进行查询:

// create connection
Class.forName("org.relique.jdbc.csv.CsvDriver");
Properties props = new Properties();
props.put("separator", ";");
Connection conn = DriverManager.getConnection("jdbc:relique:csv:" + myDir, props);

// run query
Statement stmt = conn.createStatement();
ResultSet myData = stmt.executeQuery("SELECT * FROM \"" + myFile + "\"");

这工作正常,但是当CSV文件没有头时,我遇到了麻烦。在那种情况下,第一数据线被认为是报头并且因此不像其他数据线那样被读取。

有没有办法告诉查询不要寻找标头,而将第一行视为数据输入?

共有1个答案

刁瀚昂
2023-03-14

您是否尝试设置属性suppressHeaders,如图4所示

Properties props = new Properties();
// Define column names and column data types here.
props.put("suppressHeaders", "true");
props.put("headerline", "ID,ANGLE,MEASUREDATE");
props.put("columnTypes", "Int,Double,Date");
 类似资料:
  • 我正在使用Chrome Webdriver执行Salesforce页面流的脚本。这些流用Selenium JUnit代码编写,在JMeter 5.4.1中作为JAR (JUnit请求采样器)导出和执行。该页面有一个带有文本框的弹出窗口。它应该从一个CSV文件(当前保存在Selenium项目中)中逐个读取所有值[例如,value1,value2...值n] (1列,“n”行),直到所有值都结束。输入

  • 我已经考虑了很长一段时间了。我正在尝试从雅虎的股票API下载数据。当您使用 API 时,它会为您提供一个文件。我一直在看opencsv,这似乎很完美,除了我想避免下载和保存文件,如果可能的话。 根据示例,OpenCSV只能从中读取。根据Oracle关于的文档,文件需要是本地的。 是否可以使用 OpenCSV 从远程文件读取而不下载?

  • 我必须将Amazon S3中的文件解压缩到我的驱动程序节点(Spark集群)中,并且我需要将所有这些csv文件作为Spark Dataframe加载,但是当我试图从驱动程序节点加载数据时,我发现了下一个问题: Pyspark: “路径不存在:file://folder/*.csv” 我试图使用dbutils.fs.mv()将所有这些文件移到dbfs,但我运行的是一个Python文件,不能使用dbu

  • 问题内容: 我正在尝试使用Python(仅法语和/或西班牙语字符)读取带有重音字符的CSV文件。基于csvreader的Python 2.5文档(http://docs.python.org/library/csv.html),由于csvreader仅支持ASCII,因此我想出了以下代码来读取CSV文件。 以下是我尝试阅读的CSV文件的摘录: 即使我尝试将编码/解码为UTF-8,我仍然收到以下异常

  • 我正在通过Spark使用以下命令读取csv文件。 我需要创建一个Spark DataFrame。 我使用以下方法将此rdd转换为spark df: 但是在将rdd转换为df时,我需要指定df的模式。我试着这样做:(我只有两列文件和消息) 然而,我得到了一个错误:java。lang.IllegalStateException:输入行没有架构所需的预期值数。需要2个字段,但提供1个值。 我还尝试使用以

  • 我有一个csv文件,有几百行和13列。csv文件的结构如下(示例): 一个标题的值显示在另一个标题下。因此,当我使用read_csv时,我得到ParserError:Error标记化数据。C错误:第27458行预期有12个字段,saw 13。 关于如何清理/重新排列csv文件并将正确的列值放在正确的列下,有什么建议吗?可能创建一个新的csv或将其输入数据库。谢谢