有没有一种简单的方法可以将镶木地板文件直接加载到 Cassandra 中?
Is there a simple way to load parquet files directly into Cassandra?
我有一个 parquet 文件/文件夹(大约 1GB),我想将其加载到我的本地 Cassandra 数据库中。不幸的是,我找不到任何方法(除了通过 SPARK(在 Scala 中))直接将这个文件加载到 CDB 中。如果我将 parquet 文件导出为 CSV,它对我的笔记本电脑来说太大了。
我正在为一个大数据分析案例设置一个 Cassandra 数据库(我有大约 25TB 的原始数据,我们需要这些数据才能快速搜索)。现在,我正在 运行 进行一些本地测试,以了解在迁移到 Cassandra as a Service on Hyperscaler 之前如何优化设计键空间、索引和表。将数据转换为 CSV 不是一种选择,因为这会爆炸太多。
COPY firmographics.company (col1,col2,col3.....) FROM 'C:\Users\Public\Downloads\companies.csv' WITH DELIMITER='\t' AND HEADER=TRUE;
事实证明,就像 Alex Ott 所说的那样,只需在 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)
我有一个 parquet 文件/文件夹(大约 1GB),我想将其加载到我的本地 Cassandra 数据库中。不幸的是,我找不到任何方法(除了通过 SPARK(在 Scala 中))直接将这个文件加载到 CDB 中。如果我将 parquet 文件导出为 CSV,它对我的笔记本电脑来说太大了。
我正在为一个大数据分析案例设置一个 Cassandra 数据库(我有大约 25TB 的原始数据,我们需要这些数据才能快速搜索)。现在,我正在 运行 进行一些本地测试,以了解在迁移到 Cassandra as a Service on Hyperscaler 之前如何优化设计键空间、索引和表。将数据转换为 CSV 不是一种选择,因为这会爆炸太多。
COPY firmographics.company (col1,col2,col3.....) FROM 'C:\Users\Public\Downloads\companies.csv' WITH DELIMITER='\t' AND HEADER=TRUE;
事实证明,就像 Alex Ott 所说的那样,只需在 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)