Неверный запрос 400 в запросе для bitcoin bigquery с использованием python - PullRequest
0 голосов
/ 07 мая 2020

Я хочу получить доступ к набору данных bitcoin bigquery и преобразовать его в формат данных.

timestamp, transaction_id, input_addr

, когда я пишу для него запрос со ссылкой на документы

from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()


query1 = '''SELECT
  transaction_id,
  timestamp,
  inputs.input_pubkey_base58
FROM bigquery-public-data.bitcoin_blockchain.transactions
WHERE timestamp < 1588879614 AND timestamp > 1572480000
         '''

dataframe = (
     client.query(query1)
    .result()
    .to_dataframe(bqstorage_client=bqstorageclient)
)
print(dataframe.head())

я получаю ошибку ниже. как решить это.

---------------------------------------------------------------------------
BadRequest                                Traceback (most recent call last)
<ipython-input-20-2ca06d198e09> in <module>()
      1 dataframe = (
----> 2      client.query(query1)
      3     .result()
      4     .to_dataframe(bqstorage_client=bqstorageclient)
      5 )

BadRequest: 400 Cannot access field input_pubkey_base58 on a value with type ARRAY<STRUCT<input_script_bytes BYTES, input_script_string STRING, input_script_string_error STRING, ...>> at [4:10]

1 Ответ

1 голос
/ 07 мая 2020

Невозможно получить доступ к полю input_pubkey_base58 для значения с типом ARRAY> в [4:10]

Вы должны исправить свой оператор select, отключив первый массив (повторяющееся поле), как показано ниже

SELECT
  transaction_id,
  TIMESTAMP,
  input.input_pubkey_base58
FROM bigquery-public-data.bitcoin_blockchain.transactions,
UNNEST(inputs) input
WHERE TIMESTAMP < 1588879614 AND TIMESTAMP > 1572480000    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...