Reputation: 3
Whenever I try the setup procedure for Apache spark data analytics, I get this error.
In
def set_hadoop_config(credentials):
prefix = "fs.swift.service." + credentials['name']
hconf = sc._jsc.hadoopConfiguration()
hconf.set(prefix + ".auth.url", credentials['auth_url']+'/v3/auth/tokens')
hconf.set(prefix + ".auth.endpoint.prefix", "endpoints")
hconf.set(prefix + ".tenant", credentials['project_id'])
hconf.set(prefix + ".username", credentials['user_id'])
hconf.set(prefix + ".password", credentials['password'])
hconf.setInt(prefix + ".http.port", 8080)
hconf.set(prefix + ".region", credentials['region'])
hconf.setBoolean(prefix + ".public", True)
In
credentials['name'] = 'keystone'
set_hadoop_config(credentials)
Out
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-6-976c35e1d85e> in <module>()
----> 1 credentials['name'] = 'keystone'
2 set_hadoop_config(credentials)
NameError: name 'credentials' is not defined
Does anyone know how to solve this problem? I am stuck
Upvotes: 0
Views: 106
Reputation: 81
I think you are missing the credentials dictionary i.e you should pass the values for parameters of accessing Object Store service as follows:
credentials =
{
'auth_uri':'',
'global_account_auth_uri':'',
'username':'admin_b055482b7febbd287d9020d65cdd55f5653d0ffb',
'password':"XXXXXX",
'auth_url':'https://identity.open.softlayer.com',
'project':'object_storage_e5e45537_ea14_4d15_b90a_5fdd271ea402',
'project_id':'7d7e5f2a83fe47e586b91f459d47169f',
'region':'dallas',
'user_id':'001c394e06d74b86a76a786615e358e2',
'domain_id':'2df6373c549e49f8973fb6d22ab18c1a',
'domain_name':'639347',
'filename':'2015_SQL.csv',
'container':'notebooks',
'tenantId':'s322-e1e9acad6196b9-a1259eb961e2'
}
If you are using the notebooks, you can get the above using the "Insert to Code" for the file listed under the data sources panel (right hand side).
To access the file , you will need Swift URI as follows:
raw_data = sc.textFile("swift://" + credentials['container'] + "." + credentials['name'] + "/" + credentials['filename'])
Upvotes: 1