Как я могу читать данные из DataTap с помощью cpython?

Я хочу читать данные из DataTap с помощью cpython.

В Spark я могу сделать что-то вроде:

df = spark.read.csv("dtap://MaprClus2/tmp/airline-safety.csv")

Как я могу сделать то же самое, если я использую cpython, например, когда у меня нет ядра pyspark Jupyter?

1 ответ

Решение

Один из вариантов - использовать подпроцесс для вызова hadoop команда cli:

from subprocess import check_output
import pandas as pd
from io import BytesIO

def hdfs_read(fpath):
    out = check_output(['hadoop', 'fs', '-cat', fpath])
    return BytesIO(out) 

data = hdfs_read("dtap://MaprClus2/tmp/airline-safety.csv")

# row 1 contains hadoop cli warning so remove it
pd.read_csv(data, sep=",", skiprows=1) 
Другие вопросы по тегам