【问题标题】:How do I write a csv file by taking Cassandra's table as an input using Spark?如何使用 Spark 将 Cassandra 的表作为输入来编写 csv 文件?
【发布时间】:2019-06-14 02:12:17
【问题描述】:

如果数据规模庞大且不断增长,如何使用 Spark 将 Cassandra 表中的数据写入 CSV 文件?这个问题是规模问题,因为我自己的代码,没有遇到任何与基础设施相关的问题;因此,需要经过良好测试的工具和方法。同样,就速度而言,spark 是最佳选择吗?

Cassandra 中的表架构为:

c_sql = "CREATE TABLE IF NOT EXISTS {} (id varchar, version int, row varchar, row_hash varchar, PRIMARY KEY((version), id))".format(
            self.table_name
        )

【问题讨论】:

    标签: python python-3.x csv apache-spark cassandra


    【解决方案1】:

    要将数据读入数据帧,您可以使用 Datastax Spark-Cassandra 连接器。这是一个链接,其中包含如何将数据从 Cassandra 读入数据帧的示例:https://github.com/datastax/spark-cassandra-connector/blob/master/doc/15_python.md

    daraframe=spark.read\
        .format("org.apache.spark.sql.cassandra")\
        .options(table="kv", keyspace="test")\
        .load()
    

    然后你就可以把数据写入csv了:

    dataframe.write.csv('/path/to/file.csv')
    

    【讨论】:

    • 加载十亿行数据不会导致我的OOM错误?另外,你从哪里得到dataframe
    • @aviralsanjay 1. 关于 OOM,它取决于您的 Spark 集群和应用程序的配置,但像往常一样,Spark 将计算拆分为许多任务,这些任务分别在一个或多个节点上执行。 2. 修复了答案中的代码,使其更清晰
    猜你喜欢
    • 2018-08-15
    • 2019-10-15
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    相关资源
    最近更新 更多