从 csv 文件复制 cassandra 表

2024-03-29

我正在我的 Mac(带有 Oracle jdk1.7.0_55 的 Mac OS X Yosemite)上为 Cassandra、Apache Spark 和 Flume 设置演示环境。该景观应作为新分析平台的概念证明,因此我需要在我的 cassandra 数据库中提供一些测试数据。我正在使用卡桑德拉2.0.8。

我在 Excel 中创建了一些演示数据并将其导出为 CSV 文件。结构是这样的:

ProcessUUID;ProcessID;ProcessNumber;ProcessName;ProcessStartTime;ProcessStartTimeUUID;ProcessEndTime;ProcessEndTimeUUID;ProcessStatus;Orderer;VorgangsNummer;VehicleID;FIN;Reference;ReferenceType
0F0D1498-D149-4FCC-87C9-F12783FDF769;AbmeldungKl‰rfall;1;Abmeldung Kl‰rfall;2011-02-03 04:05+0000;;2011-02-17 04:05+0000;;Finished;SIXT;4278;A-XA 1;WAU2345CX67890876;KLA-BR4278;internal

然后,我使用以下命令在 cqlsh 中创建了一个键空间和一个列族:

CREATE KEYSPACE dadcargate 
WITH REPLICATAION  = { 'class' : 'SimpleStrategy', 'replication_factor' : '1' };

use dadcargate;

CREATE COLUMNFAMILY Process (
  ProcessUUID uuid, ProcessID varchar, ProcessNumber bigint, ProcessName varchar, 
  ProcessStartTime timestamp, ProcessStartTimeUUID timeuuid, ProcessEndTime timestamp, 
  ProcessEndTimeUUID timeuuid, ProcessStatus varchar, Orderer varchar,
  VorgangsNummer varchar, VehicleID varchar, FIN varchar, Reference varchar,
  ReferenceType varchar, 
PRIMARY KEY (ProcessUUID))
WITH COMMENT='A process is like a bracket around multiple process steps';

列族名称和其中的所有列都是用全小写创建的 - 有一天也必须对此进行调查,但目前并不那么相关。

现在,我获取 CSV 文件,其中包含大约 1600 个条目,并希望将其导入到名为process像这样:

cqlsh:dadcargate> COPY process (processuuid, processid, processnumber, processname, 
processstarttime, processendtime, processstatus, orderer, vorgangsnummer, vehicleid,
fin, reference, referencetype) 
FROM 'Process_BulkData.csv' WITH DELIMITER = ';' AND HEADER = TRUE;

它给出以下错误:

Record #0 (line 1) has the wrong number of fields (15 instead of 13).
0 rows imported in 0.050 seconds.

这基本上是正确的,因为我的 cvs-export 中没有 timeUUID 字段。

如果我在没有像这样的显式列名的情况下尝试 COPY 命令(事实上,我实际上确实错过了两个字段):

cqlsh:dadcargate> COPY process from 'Process_BulkData.csv' 
WITH DELIMITER = ';' AND HEADER = TRUE;

我最终遇到了另一个错误:

Bad Request: Input length = 1
Aborting import at record #0 (line 1). Previously-inserted values still present.
0 rows imported in 0.009 seconds.

嗯。有点奇怪,但还好。也许 COPY 命令不喜欢缺少两个字段的事实。我仍然认为这很奇怪,因为缺失的字段当然存在(从结构的角度来看),但只是空的。

我还有另一个镜头:我删除了 excel 中丢失的列,再次将文件导出为 cvs 并尝试在我的 csv 中导入没有标题行但明确的列名称,如下所示:

cqlsh:dadcargate> COPY process (processuuid, processid, processnumber, processname, 
processstarttime, processendtime, processstatus, orderer, vorgangsnummer, vehicleid, 
fin, reference, referencetype) 
FROM 'Process_BulkData-2.csv' WITH DELIMITER = ';' AND HEADER = TRUE;

我收到此错误:

Bad Request: Input length = 1
Aborting import at record #0 (line 1). Previously-inserted values still present.
0 rows imported in 0.034 seconds.

谁能告诉我我在这里做错了什么?根据复制命令的文档 http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/copy_r.html,我设置命令的方式,应该至少适用于其中两个。或者说我是这么认为的。

但是不,我显然在这里遗漏了一些重要的东西。


cqlsh's COPY命令可能很敏感。然而,在COPY文档 http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/copy_r.html是这一行:

CSV 输入中的列数与 Cassandra 表元数据中的列数相同。

记住这一点,我确实设法让您的数据通过COPY FROM,通过命名空字段(processstarttimeuuid and processendtimeuuid, 分别):

aploetz@cqlsh:stackoverflow> COPY process (processuuid, processid, processnumber, 
processname, processstarttime, processstarttimeuuid, processendtime, 
processendtimeuuid, processstatus, orderer, vorgangsnummer, vehicleid, fin, reference, 
referencetype) FROM 'Process_BulkData.csv' WITH DELIMITER = ';' AND HEADER = TRUE;

1 rows imported in 0.018 seconds.
aploetz@cqlsh:stackoverflow> SELECT * FROM process ;

 processuuid                          | fin               | orderer | processendtime            | processendtimeuuid | processid         | processname        | processnumber | processstarttime          | processstarttimeuuid | processstatus | reference  | referencetype | vehicleid | vorgangsnummer
--------------------------------------+-------------------+---------+---------------------------+--------------------+-------------------+--------------------+---------------+---------------------------+----------------------+---------------+------------+---------------+-----------+----------------
 0f0d1498-d149-4fcc-87c9-f12783fdf769 | WAU2345CX67890876 |    SIXT | 2011-02-16 22:05:00+-0600 |               null | AbmeldungKl‰rfall | Abmeldung Kl‰rfall |             1 | 2011-02-02 22:05:00+-0600 |                 null |      Finished | KLA-BR4278 |      internal |    A-XA 1 |           4278

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

从 csv 文件复制 cassandra 表 的相关文章

  • 如何以 Express 方式传输响应?

    我一直在尝试让一个快速应用程序以流形式发送响应 var Readable require stream Readable var rs Readable app get report function req res res statusC
  • CSV 损坏,如何修复?

    我正在尝试解析 CSV 我想将它放入数据库或只是用 JavaScript 解析它 但由于语法损坏 任何一种方法都会失败 我的整个 CSV 文件在这里 https gist github com 1023560 https gist gith
  • Objective-C 复制视图

    所以我在这里有一个简短的问题 我有一个视图控制器对象的实例 让我们调用它viewCon1 并且它上面放置了几个子视图 每个子视图都具有独特的属性 让我们称呼他们吧sub1 sub2 and sub3 现在 我以编程方式添加每个子视图 执行以
  • 读取 CSV 文件单列的更快方法

    我正在尝试阅读一个列CSV文件至R尽快 我希望将标准方法将列放入 RAM 所需的时间减少 10 倍 我的动机是什么 我有两个文件 一个叫Main csv这是 300000 行和 500 列 其中一个称为Second csv即 300000
  • TaskSchedulerImpl:初始作业尚未接受任何资源;

    这就是我正在尝试做的事情 我创建了DataStax企业集群的两个节点 在其上创建了一个java程序来获取一张表 Cassandra数据库表 的计数 该程序是在 eclipse 中构建的 实际上是来自 windows 盒子 从 Windows
  • 将数据作为 RDD 保存回 Cassandra

    我试图从 Kafka 读取消息 处理数据 然后将数据添加到 cassandra 中 就像它是 RDD 一样 我的麻烦是将数据保存回 cassandra 中 from future import print function from pys
  • 保存的数据带有不需要的引号

    我使用以下代码将数据框导出到 csv data write format com databricks spark csv options delimiter t codec org apache hadoop io compress Gz
  • Python-从Excel文件读取时间时未获得正确的日期时间

    我有一个 Excel 文件 其中有 3 列作为日期时间或日期或时间字段 我正在通过阅读它xlrd包裹 我有时间milliseconds我想当我尝试将其转换回日期时间时我得到了错误的结果 我尝试将文件转换为csv以及 这也没有帮助 我得到了我
  • 在 JSON 转换为 CSV 期间保持 JSON 键的顺序

    我正在使用此处提供的 JSON 库http www json org java index html http www json org java index html为了将 json 字符串转换为 CSV 但我遇到的问题是 转换后键的顺序
  • 在 Shiny 的压缩文件夹中下载多个 csv 文件

    有人可以指出我如何使这个下载 zip 功能在 server R 中工作吗 当我运行这个时 我收到以下错误 1 var folders 00 1dk1r000h01000cxqpysvccm005p87 T Rtmps3T6Ua write
  • LOAD DATA LOCAL INFILE 给出错误:此 MySQL 版本不允许使用命令

    我有一个调用 MySQL 的 PHP 脚本LOAD DATA INFILE从 CSV 文件加载数据 但是 在生产服务器上 我最终遇到了以下错误 用户访问被拒绝 使用密码 是 作为快速解决方法 我将命令更改为LOAD DATA LOCAL I
  • 将 csv 写入谷歌云存储

    我试图了解如何将多行 csv 文件写入谷歌云存储 我只是没有遵循文档 https googlecloudplatform github io google cloud python stable storage blobs html hig
  • 如何确定 CSV 文件字段是制表符分隔还是逗号分隔?

    我试图确定 CSV 文件字段是制表符分隔还是逗号分隔 我需要 PHP 验证 我怎样才能确定这一点 现在回答这个问题已经太晚了 但希望它能对某人有所帮助 这是一个简单的函数 它将返回文件的分隔符 function getFileDelimit
  • Mac 监听事件:复制到粘贴板

    我正在阅读 NSPasteboard 然后想找到 我试图找到正确的通知方法来侦听数据复制到剪贴板的事件 我还试图找到复制到剪贴板的数据的文件路径 这将是一个粘贴板对象 如果我从浏览器中的页面复制文本 我会尝试找出如何获取复制文本的页面的 U
  • 引起原因:com.datastax.driver.core.exceptions.InvalidQueryException:日期长度应为 8 或 0 字节 (13)

    我正在尝试使用 spring data cassandra 插入数据 但是当我的应用程序使用 Spring Boot 版本是 1 5 3 运行时 我遇到了以下错误 我在spring data中添加了一个实现CrudResposity的自定义
  • 使用csv文件-PHP创建表到mysql时添加反引号

    我有一个 php 代码 它将使用 csv 文件创建一个到 mysql 数据库的表 然而 某些列标题没有被 mysql 读取 mysql 唯一一次读取查询是当我添加反引号 您能帮助我在查询中的何处添加反引号吗 这是我的代码 file C Us
  • 如何使用 javascript 从 UUID v1 (TimeUUID) 中提取时间戳?

    我使用 Cassandra DB 和 Nodejs 的 Helenus 模块来操作它 我有一些包含 TimeUUID 列的行 如何在javascript中从TimeUUID获取时间戳 这个库 UUID 至今 https github com
  • 无法使用 OpsCenter 5.2.1 备份到 S3

    我将 OpsCenter 从 5 1 3 升级到 5 2 0 然后升级到 5 2 1 我在升级之前配置了到本地服务器的计划备份和 S3 位置 这与 OpsCenter 5 1 3 配合良好 在升级期间或升级之后 我没有对计划备份进行任何更改
  • 将数据从 Google Drive 中的 CSV 文件导入到 Google Sheet

    我使用 SAS 每 24 小时生成两个 CSV 文件 我使用 bat 脚本将生成的 CSV 文件保存在 Google Drive 的文件夹中 CSV 文件被替换 因此文件夹中始终只有这两个文件 CSV 文件以 分隔 并且仅包含三列或四列 我
  • Cassandra 和二级索引,它们内部如何工作?

    Cassandra 二级索引内部如何运作 文档指出它是某种哈希索引 鉴于我有专栏username foobar 列用户名将是 CF 中的辅助索引 User with RandomOrderingPartitioner 我的假设是否正确 ca

随机推荐