Python PySpark在Ubuntu和Mac中的结果不同

Python PySpark在Ubuntu和Mac中的结果不同,python,apache-spark,dataframe,pyspark,Python,Apache Spark,Dataframe,Pyspark,我正在pyspark.sql中使用DataFrame。为什么Ubuntu和Mac的输出不同 我只使用了10个文档,因此N=10。我使用的公式是tf-idf=(1+log(tf))*log(N/df)。所以你可以看到实际上Mac给出了正确的输出,而Ubuntu(在VM内部)给出了错误的输出 我的tf idf列是一个FloatType()。我用一个udf函数计算它 Ubuntu输出: Mac输出: 正如您在评论中提到的,您正在Ubuntu中使用python 2.7,在Mac中使用python 3.

我正在pyspark.sql中使用DataFrame。为什么Ubuntu和Mac的输出不同

我只使用了10个文档,因此N=10。我使用的公式是
tf-idf=(1+log(tf))*log(N/df)
。所以你可以看到实际上Mac给出了正确的输出,而Ubuntu(在VM内部)给出了错误的输出

我的tf idf列是一个FloatType()。我用一个udf函数计算它

Ubuntu输出:

Mac输出:


正如您在评论中提到的,您正在Ubuntu中使用python 2.7,在Mac中使用python 3.6。您的pyspark代码正在进行除法(
/

在蟒蛇3中

>>> 3/2
1.5
在python2中

>>> 3/2
1

查看python2与python3除法的详细信息,以及如何调整解释器的行为。

可能有人使用python2,其中
/
执行整数除法?哦,除法中的btn python2和Python 3有区别吗@timgeb你能再解释一下吗?是的,我的Ubuntu安装了Python 2.7.12(由我的讲师提供)。我的Mac安装了Python 3.6.4