如何将bigquerysql查询结果转换为Spark数据帧?

2024-03-28 23:22:30 发布

您现在位置:Python中文网/ 问答频道 /正文

从官方文档中可以看到,它首先将表加载到Spark DataFrame中,然后使用.sql()执行查询。你知道吗

words = spark.read.format('bigquery') \
  .option('table', 'bigquery-public-data:samples.shakespeare') \
  .load()
words.createOrReplaceTempView('words')

# Perform word count.
word_count = spark.sql(
    'SELECT word, SUM(word_count) AS word_count FROM words GROUP BY word')
word_count.show()
word_count.printSchema()

我可以根据查询结果加载表来做类似的事情吗?下面是我将BigQuery结果加载到DataFrame的代码。你知道吗

sql_query = 'Some Queries'
credentials, project = google.auth.default(scopes=[
        'https://www.googleapis.com/auth/drive',
        'https://www.googleapis.com/auth/bigquery',
    ])
client = bigquery.Client(credentials=credentials, project=project)
df = client.query(sql_query).to_dataframe()

我知道我们可以把熊猫数据帧转换成火花数据帧。我在寻找一种更干净更快的方法。你知道吗


Tags: httpsprojectcomauthdataframesqlwwwcount
1条回答
网友
1楼 · 发布于 2024-03-28 23:22:30

spark bigquery连接器依赖于bigquery存储API,它直接从表的文件中读取数据并允许分发读取的数据。BigQuery客户端在单个线程中读取结果的全部内容。你知道吗

但是,您可以使用自版本0.10.0-beta以来添加到连接器的视图支持,方法是首先使用SQL查询创建视图,然后将视图直接读取到数据帧。你知道吗

相关问题 更多 >