Найти групповые столбцы из pyspark.sql.GroupedData (Access df._jgd JavaObject?) - PullRequest
2 голосов
/ 02 июля 2019

Написание функции, которая должна использовать столбцы, указанные при создании pyspark.sql.GroupedData. Столбцы, кажется, хранятся в атрибуте класса ._jgd, который является объектом Java. У меня есть хак / обходной путь (ниже), но я хотел бы знать, есть ли способ прямого доступа к содержимому объекта Java. Есть ли «хороший / лучший» способ, что рекомендуется?

import pandas as pd

# Sample data 
df = pd.DataFrame({'gcol1': ['a1','a1','a1','b2','b2','cc'],
                   'x1': [1,2,3,4,5,6],
                   'x2': [1,2,3,4,5,6]})
df = spark.createDataFrame(df)
df = df.groupby('gcol1')

требуется список с ['gcol1'].

Мой "хак" работает, а именно:

grouping_cols = df.count().columns
grouping_cols.reverse()
grouping_cols.remove('count')
grouping_cols.reverse()
print(grouping_cols)

['gcol1']

Это хакерское решение, как правило, подойдет, но было бы лучше получить доступ к информации с объекта. Атрибут ._jgd, кажется, содержит необходимую информацию, но это JavaObject.

print(df._jgd)
RelationalGroupedDataset: [grouping expressions: [gcol1], value: [gcol1: string, x1: bigint ... 1 more field], type: GroupBy]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...