Spark Cassandra,如何基于查詢獲取數據

我有一個非常大的Cassandra表,現在我有了spark-Cassandra與以下代碼的連接。

import pandas as pd
import numpy as np
from pyspark import *
import os
from pyspark.sql import SQLContext


os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages  com.datastax.spark:spark-cassandra-connector_2.12:3.0.1 --conf spark.cassandra.connection.host=127.0.0.1 pyspark-shell'
conf = SparkConf().set("spark.cassandra.connection.host", "127.0.0.1").set("spark.cassandra.connection.port", "9042").setAppName("Sentinel").setMaster("spark://Local:7077")
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)

table_df = sqlContext.read\
        .format("org.apache.spark.sql.cassandra")\
        .options(table='movies', keyspace='movie_lens')\
        .load()\
        

主鍵是Movie_id,它是一個整數。load()將整個表加載到內存中,這是我要避免的。我得到的一個方法是使用過濾器

table_df = sqlContext.read\
        .format("org.apache.spark.sql.cassandra")\
        .options(table='movies', keyspace='movie_lens')\
        .load()\
        .filter("movie_id = 37032")

但過濾器是否真的阻止了將整個表加載到內存中?或者先加載然后過濾。另外,我還要查詢很多身份證。假設我需要1000個身份證,每天都在換。那怎么辦呢?

? 最佳回答:

是的,如果您在分區鍵上進行查詢,Spark Cassandra連接器將執行so-called“謂詞下推”,并且將僅從特定查詢加載數據(.load函數將只加載元數據,實際的數據加載將在您確實需要數據來執行操作時第一次發生)。關于Spark-Cassandra連接器中何時發生謂詞下推,有很好的文檔規則。您還可以通過運行table_df.explain()來檢查這一點,并為標有星號*的過濾器查找PushedFilters部分。

如果您需要查找多個id,那么您可以使用.isin過濾器,但不建議使用Cassandra。最好用IDs創建一個dataframe,并用cassandradataframe執行so-called直接連接(自從scc2.5用于dataframes,或者更早用于RDDs以來,它就可用了)。我在卡桑德拉有一篇關于加入數據的博文

主站蜘蛛池模板: 国产成人综合精品一区| 国产精品视频第一区二区三区| 91麻豆精品国产自产在线观看一区 | 久久se精品一区精品二区国产| 久久国产精品无码一区二区三区| 国产激情一区二区三区| 色窝窝免费一区二区三区| 久久国产精品最新一区| 成人区精品人妻一区二区不卡 | 亚洲影视一区二区| 在线精品亚洲一区二区小说| 亚洲福利视频一区二区| 国产亚洲福利一区二区免费看| 亚洲av色香蕉一区二区三区 | 人妻无码一区二区三区AV| 亚洲夜夜欢A∨一区二区三区| 亚洲毛片不卡av在线播放一区| 八戒久久精品一区二区三区| 精品国产一区二区三区AV| 国产成人精品一区二区A片带套| 伊人久久大香线蕉AV一区二区 | 久久精品国产免费一区| 中文字幕在线精品视频入口一区| 成人乱码一区二区三区av| 国产乱码精品一区二区三| 国产一区三区三区| 久久久久一区二区三区| 青青青国产精品一区二区| 97久久精品无码一区二区| 无码一区二区波多野结衣播放搜索| 亚洲日韩精品国产一区二区三区| 亚洲国产精品无码第一区二区三区| 99精品一区二区三区无码吞精| 亚洲国产一区在线观看| 亚洲一区二区三区丝袜| 国产一区二区三区在线免费观看| 国产99精品一区二区三区免费| 嫩B人妻精品一区二区三区| 乱精品一区字幕二区| 亚洲国产精品无码第一区二区三区| 欧洲精品一区二区三区|