有没有一个简单的方法加载Parquet文件直接到Cassandra?

wfsdck30  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(324)

我有一个Parquet文件/文件夹(约1gb),我想加载到我的本地Cassandra数据库。不幸的是,我找不到任何方法(除了通过spark(在scala中))直接将这个文件加载到cdb中。如果我把Parquet文件吹成csv文件,对我的笔记本电脑来说就太大了。
我正在为一个大数据分析案例建立一个cassandra数据库(我有大约25tb的原始数据,需要快速搜索)。现在,我正在运行一些本地测试,研究如何在将cassandra作为hyperscaler上的一个服务迁移到cassandra之前优化设计键空间、索引和表。将数据转换为csv不是一个选项,因为这会导致太多问题。

COPY firmographics.company (col1,col2,col3.....) FROM 'C:\Users\Public\Downloads\companies.csv' WITH DELIMITER='\t' AND HEADER=TRUE;
bcs8qyzn

bcs8qyzn1#

事实证明,就像亚历克斯·奥特说的,在spark里写出来很容易。在我的代码下面:

import findspark

from pyspark.sql import SparkSession  
findspark.init()

spark = SparkSession\
    .builder\
    .appName("Spark Exploration App")\
    .config('spark.jars.packages', 'com.datastax.spark:spark-cassandra-connector_2.11:2.3.2')\
    .getOrCreate()

import pandas as pd
df = spark.read.parquet("/PATH/TO/FILE/")

import time
start = time.time()

df2.drop('filename').write\
    .format("org.apache.spark.sql.cassandra")\
    .mode('append')\
    .options(table="few_com", keyspace="bmbr")\
    .save()

end = time.time()
print(end - start)

相关问题