PySpark - Как рассчитать минимальное, максимальное значение каждого поля с помощью Pyspark? - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь найти минимум, максимум каждого поля, полученного из оператора sql, и записать его в файл csv.Я пытаюсь получить результат ниже моды.Не могли бы вы помочь.Я уже писал на python, но сейчас пытаюсь преобразовать его в pyspark для запуска в кластере hadoop напрямую

enter image description here

from pyspark.sql.functions import max, min, mean, stddev
from pyspark import SparkContext
sc =SparkContext()
from pyspark.sql import HiveContext
hive_context = HiveContext(sc)
#bank = hive_context.table("cip_utilities.file_upload_temp")
data=hive_context.sql("select * from cip_utilities.cdm_variables_dict")
hive_context.sql("describe cip_utilities.cdm_variables_dict").registerTempTable("schema_def")
temp_data=hive_context.sql("select * from schema_def")
temp_data.show()
data1=hive_context.sql("select col_name from schema_def where data_type<>'string'")
colum_names_as_python_list_of_rows = data1.collect()
#data1.show()
for line in colum_names_as_python_list_of_rows:
        #print value in MyCol1 for each row                
        ---Here i need to calculate min, max, mean etc for this particular field send by the for loop

1 Ответ

0 голосов
/ 20 ноября 2018

Существуют различные функции, которые вы можете использовать, чтобы найти минимальное, максимальное значения.Вот один из способов получить эти сведения о столбцах данных с помощью функции agg .

from pyspark.sql.functions import *
df = spark.table("HIVE_DB.HIVE_TABLE")
df.agg(min(col("col_1")), max(col("col_1")), min(col("col_2")), max(col("col_2"))).show()

Однако вы также можете изучить description и summary (начиная с версии 2.3), чтобы получить базовую статистику для различных столбцов в вашем фрейме данных.

Надеюсь, это поможет.

С уважением,

Neeraj

...