Python Pyspark | ModuleNotFoundError:没有名为'的模块;广告';

Python Pyspark | ModuleNotFoundError:没有名为'的模块;广告';,python,pyspark,jupyter-notebook,pyspark-sql,pyspark-dataframes,Python,Pyspark,Jupyter Notebook,Pyspark Sql,Pyspark Dataframes,使用PySpark,我试图向现有数据帧添加一个新列,其中新列中的条目表示最接近现有列的bin值。在下面我将展示的示例中,numpy数组bucket\u数组表示桶(bucket) PySpark代码的相关部分,其错误我将很快提及,如下所示: #Function for finding nearest bucket def find_nearest(value, bin_array): bin_array = np.array(list(bin_array)) value = flo

使用PySpark,我试图向现有数据帧添加一个新列,其中新列中的条目表示最接近现有列的bin值。在下面我将展示的示例中,numpy数组
bucket\u数组
表示桶(bucket)

PySpark代码的相关部分,其错误我将很快提及,如下所示:

#Function for finding nearest bucket
def find_nearest(value, bin_array):
    bin_array = np.array(list(bin_array))
    value = float(value)
    idx = np.argmin(np.abs(bin_array - value))
    return float(bin_array[idx])
+--------------------+----------+-------------------+-------------------+------------------------------+--------------+
|           entity_id|. category|         sampled_ts|         some_score|         some_score_prev_value|pct_difference|
+--------------------+----------+-------------------+-------------------+------------------------------+--------------+
|abccccccccccccccc...|         A|2017-12-03 00:00:00|                192|                           824|        -632.0|
|defffffffffffffff...|         A|2017-12-10 00:00:00|                515|                           192|         323.0|
|ghiiiiiiiiiiiiiii...|         A|2017-12-17 00:00:00|                494|                           515|         -21.0|
+--------------------+----------+-------------------+-------------------+------------------------------+--------------+
当我在Jupyter笔记本中运行上述代码时,它工作正常,我能够看到数据帧
bucket\u df

同样,当我将上述代码保存为一个单独的python函数,将其导入我的Jupyter笔记本,然后最终执行它时,我得到了一个错误。我注意到错误发生在行
bucket\u df.show()
处。该错误的一部分如下所示:

/mnt1/jupyter/notebooks/username/custom_function.py in metric_analyze(entity_peer_labeled_df, metric, delta_weeks, normalize)
    100                                                                                        udf_nearest_bin("pct_difference", "bucket_array") )
    101 
--> 102     bucket_df.show()

/usr/lib/spark/python/pyspark/sql/dataframe.py in show(self, n, truncate, vertical)
    376         """
    377         if isinstance(truncate, bool) and truncate:
--> 378             print(self._jdf.showString(n, 20, vertical))
    379         else:
    380             print(self._jdf.showString(n, int(truncate), vertical))

/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py in __call__(self, *args)
   1255         answer = self.gateway_client.send_command(command)
   1256         return_value = get_return_value(
-> 1257             answer, self.gateway_client, self.target_id, self.name)
   1258 
   1259         for temp_arg in temp_args:
可以找到完整的错误

当我将行
bucket.show()
替换为
print(bucket.count())
时,我没有看到任何错误,并且运行良好(即使我将上述代码作为单独的函数使用)

下面给出了
实体\u pct\u度量\u df
的示例:

#Function for finding nearest bucket
def find_nearest(value, bin_array):
    bin_array = np.array(list(bin_array))
    value = float(value)
    idx = np.argmin(np.abs(bin_array - value))
    return float(bin_array[idx])
+--------------------+----------+-------------------+-------------------+------------------------------+--------------+
|           entity_id|. category|         sampled_ts|         some_score|         some_score_prev_value|pct_difference|
+--------------------+----------+-------------------+-------------------+------------------------------+--------------+
|abccccccccccccccc...|         A|2017-12-03 00:00:00|                192|                           824|        -632.0|
|defffffffffffffff...|         A|2017-12-10 00:00:00|                515|                           192|         323.0|
|ghiiiiiiiiiiiiiii...|         A|2017-12-17 00:00:00|                494|                           515|         -21.0|
+--------------------+----------+-------------------+-------------------+------------------------------+--------------+

如何解决上述错误?

metric\u analyze
函数中,什么是
entity\u pct\u metric\u df
?另外,你能提供你正在使用的变量的例子吗?这将有助于回答您是否使用windows?您是否在群集上运行此操作
numPy
依赖于
ad
,而ad不是present@ClockSlave:谢谢你的建议。在我最近的更新中,我给出了一个
entity\u pct\u metric\u df
的例子。@pissall:谢谢你的建议。我在使用AWS的jupyter上运行这个。在同一个jupyter笔记本中,当它是笔记本的一行的一部分时,我能够运行此代码(即,当我没有将上述方法分离为单独的函数时)。我在jupyter笔记本中导入此代码后看到此错误。@Siddharthattathy,您的函数将
entity\u peer\u label\u df
作为输入。我不知道那是什么,也不知道其他变量。无论如何,我不认为这与代码有多大关系。我认为@pissall为你指明了正确的方向。这看起来像是一个依赖性问题。