2
+------+------------+
| fruit|fruit_number|
+------+------------+
| apple| 20|
|orange| 33|
| pear| 27|
| melon| 31|
| plum| 8|
|banana| 4|
+------+------------+
같은 테이블 내가 각 행의 비율을 생성 할하지만 비율 열을 요약하면 내가 여기에 100 % 을 얻을 수있는 코드의 I입니다 pyspark
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext, HiveContext,Row
sqlContext = HiveContext(sc)
from pyspark.sql.types import StringType, IntegerType, StructType, StructField,LongType
from pyspark.sql.functions import sum, mean,col
rdd = sc.parallelize([('apple', 20),
('orange',33),
('pear',27),
('melon',31),
('plum',8),
('banana',4)])
schema = StructType([StructField('fruit', StringType(), True),
StructField('fruit_number', IntegerType(),True)])
df = sqlContext.createDataFrame(rdd, schema)
df.registerTempTable('fruit_df_sql')
#total_num = 123
df_percent=spark.sql("""select fruit, round(fruit_number/123*100,2) as cnt_percent
from fruit_df_sql
order by cnt_percent desc """)
df_percent.agg(sum('cnt_percent')).show()
에 발생하지만이
+----------------+
|sum(cnt_percent)|
+----------------+
| 99.99|
+----------------+
N과 같은 결과를 얻었다 ot 100 %,이 정밀도 오류를 처리하는 방법? 감사합니다.