【问题标题】:Import csv file in cassandra using python script使用python脚本在cassandra中导入csv文件
【发布时间】:2019-12-17 00:55:57
【问题描述】:

我想使用 python 脚本在 cassandra 中导入一个 csv 文件。我已经知道如何使用 cqlsh 中的 COPY 命令在 cassandra 中导入 csv。

我的csv file dtypes:时间戳、时间戳、小数、小数、小数、小数、小数、小数

我已经有一个代码,我只是不知道如何在 cassandra 中导入 csv 文件

KEYSPACE = "test_cassandra"

cluster = Cluster(['127.0.0.1'])
session = cluster.connect()

log.info("creating keyspace . . .")
session.execute("""
    CREATE KEYSPACE IF NOT EXISTS %s 
    WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} 
    """ % KEYSPACE)

log.info("setting keyspace . . .")
session.set_keyspace(KEYSPACE)

log.info("creating table . . .")
session.execute("""
    CREATE TABLE IF NOT EXISTS test_NYC_taxi (
        pickup timestamp, 
        dropoff timestamp, 
        distance decimal, 
        fare decimal, 
        p_long decimal, 
        p_lat decimal, 
        d_long decimal, 
        d_lat decimal, 
        PRIMARY KEY(pickup, dropoff, distance));
    """)



prepared = session.prepare("""
        INSERT INTO test_nyc_taxi (pickup, dropoff, distance, fare, p_long, p_lat, d_long, d_lat)
        VALUES (?, ?, ?, ?, ?, ?, ?, ?)
        """)


任何帮助将不胜感激。 :)

【问题讨论】:

    标签: python-3.x cassandra ubuntu-18.04


    【解决方案1】:

    你走在正确的道路上。您唯一需要添加的是文件阅读器(我将您的数据保存为.csv 文件并让它工作),一个循环遍历它,然后将datetime 包导入到转换准备好的声明的日期。

    这对我有用:

    with open("/home/aaron/Documents/stackoverflow/test_NYC_taxi.csv", "r") as fares:
        for fare in fares:
            columns=fare.split(",")
            pickup=datetime.datetime.strptime(columns[0],"%Y-%m-%d").date()
            dropoff=datetime.datetime.strptime(columns[1],"%Y-%m-%d").date()
            distance=columns[2]
            fare=columns[3]
            p_long=columns[4]
            p_lat=columns[5]
            d_long=columns[6]
            d_lat=columns[7]
    
            session.execute(prepared, [pickup,dropoff,distance,fare,p_long,p_lat,d_long,d_lat])
    
    #closing the file
    fares.close()
    
    #closing Cassandra connection
    session.shutdown()
    

    【讨论】:

    • 哇,谢谢!我很难弄清楚如何转换这些日期。
    【解决方案2】:

    在 python 代码中打开 csv 文件阅读器。遍历这些行并调用插入语句。请检查以下链接。

    https://stackoverflow.com/a/19828117/1358551

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-12
      • 1970-01-01
      • 2021-08-30
      • 2012-03-19
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多