win10下安裝pyspark及碰到的問題

文章目錄

  • 前言
  • 安裝過程
    • Q1
  • 總結:

前言

最近由于工作需要,需要了解下pyspark,所以就在win10環境下裝了下,然后在pycharm中使用的時候碰到了一些問題。整個過程可謂是一波三折。下面一一道來。

安裝過程

安裝過程就不詳細說了,網上一搜一大堆,這里寫下自己參考的博文:
https://blog.csdn.net/w417950004/article/details/77203501

安裝好之后如何在pycharm中使用?
網上有文章說要在對應的文件中配置相關的spark_home地址等。
詳情參考:https://www.cnblogs.com/hello-yz/p/9306099.html
其實沒必要,因為我們在按照上面博文安裝pyspark的過程中聲明了相關的變量為全局變量,所以完全沒必要在pycharm的文件中重復聲明,相反這樣做可能會帶來一些負面效果。這時候,只需要將pyspark的代碼放入pycharm中運行即可。但是中間會遇到一些問題下面一一來解答。

Q1

在pycharm中執行pyspark腳本報錯:TypeError: namedtuple() missing 3 required keyword-only arguments: 'rename’

原因:pyspark和python版本不兼容。
解決辦法:
參考:https://blog.csdn.net/u010916338/article/details/106108266

但是博主按照上面的解決方案降低python版本到3.5之后,問題依舊存在。
事情的過程:
背景:
博主之前就裝的有python3.7版本的anaconda。所以為了不影響之前的3.7環境,選擇了通過利用conda建虛擬環境的方法來新建3.5的虛擬環境,然后將pycharm的解釋器更換為3.5的虛擬環境,來運行pyspark代碼。but,問題依舊存在。(PS:很郁悶,不是說好的是版本的兼容的問題,我按照方案降了版本,為什么還是報上面的錯誤)無奈,以為是解決方案的問題,遂又google,baidu了一番。發現這個錯位的原因就是spark和python版本兼容的問題,解決方案沒問題。那到底是哪的原因呢?
為了解決心中的疑惑,博主走上了實驗之路,先是在windows命令行以命令的形式利用python3.5解釋器去運行腳本如: " ######\envs\python35 ######\pyspark_demo.py" ,依舊報上面的版本不兼容的錯誤。接下來在命令行,通過"activate py35"指令開啟python3.5虛擬環境,然后執行“python ######\pyspark_demo.py”指令,運行pyspark程序竟然跑通了。。。一臉問號,這是為什么呢?為什么只有進入虛擬環境運行腳本才能跑通,在外部通過虛擬環境指令運行腳本就跑不通呢?
后面分析可能是spark包在被調用的時候,引用的系統默認的python環境,當時我的默認python環境為3.7(也就是你在命令行輸入python指令,啟動的是3.7版本)。所以如果你沒有進入python3.5的虛擬環境,而是在外部執行pyspark程序的話,系統默認的python環境永遠是3.7版本。但是當你激活python3.5的虛擬環境的時候,此時系統默認的python環境就是python3.5版本。
為了印證猜想,就在系統變量中將python3.5的虛擬環境變量聲明到python3.7的前面,將其覆蓋。
如下圖所示:
在這里插入圖片描述
此時系統默認python環境為3.5
在這里插入圖片描述
此時再通過pycharm運行pyspark的時候,就通過了。
在這里插入圖片描述

總結:

如果你是第一次裝anaconda,也許不會碰到這樣的問題,如果你裝的anaconda是python3.6的版本也許也不會碰到這樣的問題,但是如果你和我一樣很不幸,裝的是python3.7版本的anaconda,并且不想動之前的環境,創建了一個虛擬環境來玩,那么“恭喜你”,大概率會碰到這樣的問題。
不過,不用頭疼,解決問題的方法很多,就算不用這種方法,你還可以曲線救國,比如重裝python低版本的anaconda等等。
不過還是得吐槽下,這個問題真惡心,哈哈。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456336.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456336.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456336.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解決AttributeError AttributeError: 'NoneType' object has no attribute 'filename'

原因忘記上傳文件 表單需要加屬性 enctype"multipart/form-data" 否則報錯!AttributeError AttributeError: NoneType object has no attribute filename enctype"multipart/form-data是設置表單的MIME編碼。默認情況,這個編碼格式是ap…

SQLAlchemy()分頁器paginate方法

Flask的數據分頁示例 用法: 1,首先寫數據獲取的視圖函數,就像這樣: # 首頁 blog_bp.route(/, endpointindex) def index():#獲取頁數page request.args.get(page,1)paginate Article.query.paginate(pageint(page),per_page3)…

開源中國 2014 年源創會年度計劃

時光總是從敲代碼的指尖不經意地滑過,轉眼2014年已快過去一半,OSC依然心懷著最初的夢想。 源創會,oscer的線下快樂大本營,我們仍在繼續...... 聆聽技術大牛講解最前沿的技術,和同道中人切磋IT秘籍,吃點心侃…

互聯網金融行業申請評分卡(A卡)簡介

文章目錄前言基本概念1、信用違約風險的基本概念什么是信用違約風險:組成部分違約的主體個貸中常用的違約定義M0,M1,M2的定義2、申請評分卡的重要性和特性信貸場景中的評分卡申請評分卡的概念為什么要開發申請評分卡評分卡的特性 &#xff08…

Flask的csrf_token的用法

在flask當中,flask-wtf模塊時攜帶csrf校驗的,只是需要開啟; 如果不開啟校驗就不需要校驗,但是那樣不安全。 Csrf是針對與post請求的跨域限制,get請求沒有作用 csrf_token的開啟 在flask中開啟csrf保護 from flask_…

dotty編譯器語法特性之一交叉類型,聯合類型和文本單例類型

2019獨角獸企業重金招聘Python工程師標準>>> ###翻譯:http://dotty.epfl.ch/docs/reference/intersection-types.html #交叉類型 trait Resettable {def reset(): this.type } trait Growable[T] {def add(x: T): this.type } def f(x: Resettable &…

【轉】Zookeeper 安裝和配置

轉自:http://coolxing.iteye.com/blog/1871009 Zookeeper的安裝和配置十分簡單, 既可以配置成單機模式, 也可以配置成集群模式. 下面將分別進行介紹. 單機模式 1. 配置 點擊這里下載zookeeper的安裝包之后, 解壓到合適目錄. 進入zookeeper目錄下的conf子目錄, 創建z…

一分鐘精通Flask-Bootstrap的使用

要想在程序中集成Bootstrap,顯然要對模板做所有必要的改動。不過,更簡單的方法是使用一個名為Flask-Bootstrap 的Flask 擴展,簡化集成的過程。 安裝: Flask-Bootstrap 使用pip安裝: pip install flask_bootstrap Fl…

linux生產環境下安裝anaconda總結

前言: 工作中,常常要在新的linux生產服務器中安裝自己的集成python環境,這種情況下有一點需要注意:不能覆蓋生產服務器中的python環境(也就是自己的python環境要和系統的python環境分開)。一般情況下系統自…

Delphi TScrollBar 用于滾動窗口、組件內容

滾動條組件(TScrollBar)此組件是一個Windows滾動條,用于滾動窗口、組件內容。許多控制有滾動條屬性,它們把滾動條作為自己的一部分,對于沒有完整滾動條的控制,TScrollBar組件提供了一個附加的功能&#xff…

FSF 稱 DRM 被用于鎖定、控制和監視用戶

自由軟件基金會正在督促美國政府廢除DMCA中保護DRM的反規避條款。DMCA的1201條款禁止繞過DRM保護的內容和設備。 自由軟件基金會的Donald Robertson在致函美國版權辦公室的信(PDF)中指出,技術保護措施和數字限制管理(即DRM&#x…

改數據庫表結構類型兩種方法

alter table user change password password varchar(128) not null; alter table user modify column password varchar(128) not null;

申請評分卡(A卡)的開發過程(1)

前言: 本篇文章上接《申請評分卡簡介》,有需要的童鞋可以參考下:https://blog.csdn.net/qq_16633405/article/details/107744921 下面介紹下A卡的開發步驟。 開發過程 1、評分卡模型開發步驟: 1、立項:場景&#…

提升你的開發效率,10 個 NPM 使用技巧

對于一個項目,常用的一些npm簡單命令包含的功能有:初始化一個文件夾( npm init ),下載npm模塊( npm install ),創建測試( npm test ) 和自定義腳本( npm run )。但是,進一步了解一些 npm 的使用技巧可以徹底改變你的日…

E: 無法獲得鎖 /var/lib/dpkg/lock-frontend - open (11: 資源暫時不可用) E: 無法獲取 dpkg 前端鎖 (/var/lib/dpkg/lock-front

解決: E: 無法獲得鎖 /var/lib/dpkg/lock-frontend - open (11: 資源暫時不可用) E: 無法獲取 dpkg 前端鎖 (/var/lib/dpkg/lock-frontend),是否有其他進程正占用它? 方法: 重新啟動虛擬機服務器 再在黑屏終端中重新嘗試輸入su…

聚類效果評估指標總結

前言 實際工作中經常會用到一些聚類算法對一些數據進行聚類處理,如何評估每次聚類效果的好壞?可選的方法有1、根據一些聚類效果的指標來評估;2、直接打點。今天就主要總結下這段時間了解的聚類效果評估指標。廢話少說,直接上干貨…

{%extends bootstrap/base.html%}的添加,使得其他block無法繼承

仙說{%extends "bootstrap/base.html"%}用法: 在base.html中調用一次即可,并且 {%extends "bootstrap/base.html"%} 要放在 最后頭!!最后頭!最后頭! base中不用再添加 {% block cont…

Vue.directive自定義指令

Vue除了內部指令&#xff0c;我們也可以定義一些屬于自己的指令&#xff0c;比如我們要定義一個v-diy的指令&#xff0c;作用就是讓文字變成紅色。 寫好了這個功能&#xff0c;我們現在就自己定義一個全局的指令。我們這里使用Vue.directive( ); html <div v-diy"color…

HTML5 SVG

SVG介紹1.什么是svgsvg指可伸縮矢量圖形&#xff08;Scalable Vector Graphics &#xff09;svg用來定義用于網絡的基于矢量圖形svg使用XML格式定義圖形svg圖像在放大或改變尺寸的情況下其圖形質量不會有損失svg是網為王聯盟的標準2.svg的優勢svg圖像可通過文本編輯器來創建和修…

運用Nginx代理和UWSGI將Flask項目部署在Linux中 詳細步驟

nginx: 安裝可以參照的路徑: http://nginx.org/en/linux_packages.html#Ubuntu 啟動Nginx nginx [ -c configpath] 默認配置目錄&#xff1a;/etc/nginx/nginx.conf 查看進程&#xff1a; ps -ef |grep nginx 控制Nginx nginx -s xxxstop 快速關閉quit …