Разъем Spark Cassandra отсутствует при чтении - PullRequest
1 голос
/ 21 июня 2020

Я записываю данные с 3000000 строками и 8 столбцами в кассандру, используя искровой коннектор кассандры (python), и когда я читаю обратно, я получаю только 50000 строк. когда я проверяю количество строк в cql sh, там также количество строк в 50000, только куда идут мои данные, есть ли проблема с соединителем spark -cassandra?

это моя конфигурация spark

spark = SparkSession.builder.appName("das_archive").config(
"spark.driver.memory", "25g").config('spark.cassandra.connection.host',
                                     '127.0.0.1').config(
'spark.jars.packages',
'datastax:spark-cassandra-connector:2.4.0-s_2.11')

запись

 df.write.format("org.apache.spark.sql.cassandra").mode('append').options(
    table='shape1', keyspace="shape_db1").save(

чтение

 load_options = {"table": "shape1", "keyspace": "shape_db1",
                "spark.cassandra.input.split.size_in_mb": "1000",
                'spark.cassandra.input.consistency.level': "ALL"}
data_frame = spark.read.format("org.apache.spark.sql.cassandra").options(
    **load_options).load()

1 Ответ

0 голосов
/ 21 июня 2020

Наиболее вероятная причина этого - неправильный первичный ключ - в результате данные перезаписываются. Вам необходимо убедиться, что каждая строка входных данных однозначно идентифицируется набором столбцов.

PS Если вы просто пишете данные, которые хранятся в чем-то вроде CSV, вы можете использовать такой инструмент, как DSBulk , который сильно оптимизирован для загрузки / выгрузки данных в / из Cassandra.

...