0

尝试使用 dsbulk 实用程序将 csv 文件加载到 dse cassandra。如果列被定义为设置,我会遇到问题。

复制命令成功加载 "{'bible', 'moses', 'ramses'}" & "{'televison'}" 。但是,当 com.datastax.driver.core.exceptions.InvalidTypeException 有多个值时,dsbulk 会失败:无法解析为 Json。

CREATE TABLE killrvideo.videos (
    videoid uuid,
    added_date timestamp,
    description text,
    location text,
    location_type int,
    name text,
    preview_image_location text,
    tags SET<text>,
    userid uuid,
    PRIMARY KEY (videoid)
)

数据文件为: https ://github.com/KillrVideo/killrvideo-cdm/blob/master/data/videos.csv

命令:

dsbulk load --driver.auth.provider PlainTextAuthProvider -u *** -p *** -header false -url /data/videos.csv -k killrvideo -t videos

com.datastax.driver.core.exceptions.InvalidTypeException:无法解析'{'阿姨','黑色刻板印象','衬衫上的血','butt bolo','胸部','家庭死亡','闪光灯' , '踢脸', '手淫', '装修', '刺中'}' as Json

4

1 回答 1

2

发生这种情况是因为videos.csv文件是从CQLSH COPY最初创建的,并且集合的格式是用大括号括{}起来的。DSBulk 期望集合值是 json 数组,其语法是用方括号将集合括起来:[].

事实证明,DSBulk 中有一个开放的票据来处理集合、元组和 UDT 的 CQL 文字。同时,请使用 CQLSH COPY 将数据加载到您的表中。

于 2018-09-21T22:23:47.970 回答