Как сохранить результат printSchema в файл в PySpark - PullRequest
0 голосов
/ 12 июня 2018

Я использовал df.printSchema() в pyspark, и это дает мне схему с древовидной структурой.Теперь мне нужно сохранить его в переменной или текстовом файле.

Я испробовал приведенные ниже методы сохранения, но они не сработали.

v = str(df.printSchema())  
print(v) 
#and
df.printSchema().saveAsTextFile(<path>)

Мне нужна сохраненная схема в формате ниже

|-- COVERSHEET: struct (nullable = true)                              
 |    |-- ADDRESSES: struct (nullable = true)
 |    |    |-- ADDRESS: struct (nullable = true)
 |    |    |    |-- _VALUE: string (nullable = true)
 |    |    |    |-- _city: string (nullable = true)
 |    |    |    |-- _primary: long (nullable = true)
 |    |    |    |-- _state: string (nullable = true)
 |    |    |    |-- _street: string (nullable = true)
 |    |    |    |-- _type: string (nullable = true)
 |    |    |    |-- _zip: long (nullable = true)
 |    |-- CONTACTS: struct (nullable = true)
 |    |    |-- CONTACT: array (nullable = true)
 |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |-- _VALUE: string (nullable = true)
 |    |    |    |    |-- _name: string (nullable = true)
 |    |    |    |    |-- _type: string (nullable = true)

1 Ответ

0 голосов
/ 12 июня 2018

Вам нужно treeString (что по какой-то причине я не смог найти в Python API)

#v will be a string
v = df._jdf.schema().treeString()

Вы можете преобразовать его в RDD и использовать saveAsTextFile

sc.parallelize([v]).saveAsTextFile(...)

Или используйте API, специфичный для Python, чтобы записать строку в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...