Как Извлечь Данные Palantir-литейного Производства Из Пользовательского Python На Моем Компьютере

#python #pyspark #python-requests #palantir-foundry

Вопрос:

Мы пытаемся прочитать огромные файлы. Но мы не можем извлечь огромные данные файлов palantir-foundry ни из tableau live connection, ни из power BI. Поэтому мы пытаемся подключиться к Palantir с python. Может ли кто-нибудь предложить какой-либо другой способ извлечения огромных файлов из palantir. Или как подключиться к palantir из пользовательского python моей локальной системы.

Я пытался найти какую-нибудь ссылку в Интернете, но в итоге всегда получал кодировку palantir в стиле pyspark. Я нашел ниже код python для извлечения кадров данных palantir. Но и для этого я сталкиваюсь с некоторыми проблемами, такими как код ошибки 400. Затем «Максимальное количество повторных попыток превышено с url: /foundry-data». наш базовый URL-адрес palantir выглядит так https://XXXX.palantirfoundry.com/. Когда я дал этот базовый URL нашей компании, я получил ошибку 405. Может ли кто-нибудь помочь.

 import requests
import pandas as pd

def query_foundry_sql(query, token, branch='master', base_url='https://foundry-instance.com') -> (list, list):
"""
Queries the dataproxy query API with spark SQL.
Example: query_foundry_sql("SELECT * FROM `/path/to/dataset` Limit 5000", "ey...")
Args:
    query: the sql query
    branch: the branch of the dataset / query

Returns: (columns, data) tuple. data contains the data matrix, columns the list of columns
Can be converted to a pandas Dataframe:
pd.DataFrame(data, columns)

"""
    response = requests.post(f"{base_url}/foundry-data-proxy/api/dataproxy/queryWithFallbacks",
                         headers={'Authorization': f'Bearer {token}'},
                         params={'fallbackBranchIds': [branch]},
                         json={'query': query})

    response.raise_for_status()
    json = response.json()
    columns = [e['name'] for e in json['foundrySchema']['fieldSchemaList']]
    return columns, json['rows']

columns, data = query_foundry_sql("SELECT * FROM `/Global/Foundry 
Operations/Foundry Support/iris` Limit 5000", 
                              "ey...",
                             base_url="https://foundry-instance.com")
df = pd.DataFrame(data=data, columns=columns)
df.head(5)
 

Комментарии:

1. Привет, я не собираюсь отвечать на этот вопрос в открытом доступе, так как это может иметь последствия для безопасности. Я бы рекомендовал вам обратиться внутренне к своим партнерам по поддержке за ответом на этот вопрос.

2. Спасибо @fmsf, я так и сделаю. Я ценю ваш ответ.