2017-01-20 49 views
2

是否可以在DSX項目中的多個筆記本間共享信息(例如憑據)與環境變量?如何在DSX項目的筆記本間共享信息

例如,Bluemix中的Cloud Foundry應用程序具有可定義環境變量的控制設置,DSX項目是否存在類似的概念(在各種項目級別設置中我看不到任何內容)。

回答

2

單獨的筆記本在後臺有不同的運行時間,目前不可能通過定義環境變量在筆記本之間共享憑據。但是對於項目中最明顯的憑證要求,有幫助方法。這稱爲「插入到代碼」方法。

例如:如果您有一個對象存儲與您的項目相關聯。

  1. 選擇頂部欄中的「數據」選項卡。
  2. 通過瀏覽或簡單的拖放操作將一些文件添加到對象存儲中。
  3. 通過選擇右側面板中右側的文件旁邊的「插入憑據」選項,在該筆記本中插入該對象存儲容器的憑證。
  4. 然後,您可以直接將這些憑證(步驟3)插入該項目的任何其他筆記本中。

除了「插入代碼」,還有其他幫助函數,如「插入SparkR數據框」,「熊貓數據框」等,以加快數據科學家的分析過程。希望這有點幫助。

2

僅供參考 - 我在uservoice上添加了功能請求,以允許將Bluemix服務綁定到項目,然後以與Bluemix應用程序訪問證書相同的方式訪問憑據。如果您認爲這會有用,請投票。


目前,一個模式我用了很多被創建在我的項目筆記本用來憑證保存到文件上DSX:

! echo '{ "username": "xxxx", "password": "xxxx", ... }' > cloudant_creds.json 

該文件現已向所有你的筆記本在項目上。 注意:文件保存在火花服務文件系統上。如果您在其他dsx項目中使用相同的spark服務,他們也將能夠訪問該文件。

cloudant的證書通常包含其他字段,如主機,我沒有在這裏顯示這些字段,所以我可以保持簡單的例子。我已經指出...有更多的字段。我通常從bluemix服務憑證字段複製此json。

在你其他的筆記本電腦,你會讀的憑據是這樣的:

with open('cloudant_creds.json') as data_file:  
    sourceDB = json.load(data_file) 

然後,您可以參考這樣的憑據:

dfReader = sqlContext.read.format("com.cloudant.spark") 
    dfReader.option("cloudant.host", sourceDB.host) 

    if sourceDB.username: 
     dfReader.option("cloudant.username", sourceDB.username) 

    if sourceDB.password: 
     dfReader.option("cloudant.password", sourceDB.password) 

    df = dfReader.load(sourceDB.database).cache() 
+0

感謝,這正是我的最終目標是,連接到IBM Bluemix Streaming Analytic服務,我已投票選擇了功能請求。 –

+0

這也將使你的筆記本電腦工作,只有當該文件存在於該位置,所以你是在重複性的利益,而不是在筆記本電腦代碼單元中的憑據。無論是好還是壞,取決於你的用例(在這裏只是想提到讀這個的人)。 –

+0

我同意,有時如果您只在一個小團隊中工作,那麼嵌入證書會更好。但是,即使在筆記本電腦中使用硬編碼證書也不會爲您提供可重複的環境。如果您下載,共享或保存筆記本到git,並且您在筆記本電腦中擁有硬編碼的憑據,那麼您很可能希望該單元格爲隱藏單元格,這意味着無論如何您都無法重現該環境? –