Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PySpark为DecimalType列创建直方图数据框_Python_Apache Spark_Pyspark_Rdd - Fatal编程技术网

Python PySpark为DecimalType列创建直方图数据框

Python PySpark为DecimalType列创建直方图数据框,python,apache-spark,pyspark,rdd,Python,Apache Spark,Pyspark,Rdd,如何使用以下架构为单列数据帧创建均匀分布的存储箱计数: >>df.schema StructType(列表(StructField(a,DecimalType(38,0),true))) 将数据帧创建为MWE: 从pyspark.sql导入行 从pyspark.sql.types导入StructType、StructField、DecimalType 从十进制输入十进制 schema=StructType([StructField('a',DecimalType(38,0),True)]) d

如何使用以下架构为单列数据帧创建均匀分布的存储箱计数:

>>df.schema
StructType(列表(StructField(a,DecimalType(38,0),true)))
将数据帧创建为MWE:

从pyspark.sql导入行
从pyspark.sql.types导入StructType、StructField、DecimalType
从十进制输入十进制
schema=StructType([StructField('a',DecimalType(38,0),True)])
df=spark.createDataFrame(
spark.sparkContext.parallelize([Row(a=Decimal(x))表示范围(100)]内的x,
模式
)
现在这是一个:

df.select('a').rdd.flatMap(λx:x).直方图(10)
但它给出了一个类型错误:

TypeError:不支持*:“decimal.decimal”和“float”的操作数类型


所以十进制类型出现了一些问题。解决问题的方法是什么,或者如何将值转换为可接受的数据类型?

您可以使用映射转换为浮点:

df.select('a').rdd.flatMap(lambda x: x).map(float).histogram(10)