def fetch_result(self, notebook, snippet, rows, start_over): api = self.get_api() session = _get_snippet_session(notebook, snippet) cell = snippet['result']['handle']['id'] response = self._fetch_result(api, session, cell, start_over) return response
def download(self, notebook, snippet, format): try: api = get_spark_api(self.user) session = _get_snippet_session(notebook, snippet) cell = snippet['result']['handle']['id'] return spark_download(api, session['id'], cell, format) except Exception, e: raise PopupException(e)
def get_log(self, notebook, snippet, startFrom=0, size=None): response = {'status': 0} api = self.get_api() session = _get_snippet_session(notebook, snippet) session = self._handle_session_health_check(session) try: response = api.get_log(session['id'], startFrom=startFrom, size=size) except RestException as e: message = force_unicode(str(e)).lower() LOG.debug(message) return response
def cancel(self, notebook, snippet): api = self.get_api() session = _get_snippet_session(notebook, snippet) session = self._handle_session_health_check(session) try: response = api.cancel(session['id']) except Exception as e: message = force_unicode(str(e)).lower() LOG.debug(message) return {'status': 0}
def fetch_result(self, notebook, snippet, rows, start_over): api = get_spark_api(self.user) session = _get_snippet_session(notebook, snippet) cell = snippet['result']['handle']['id'] try: response = api.fetch_data(session['id'], cell) except Exception, e: message = force_unicode(str(e)).lower() if 'session not found' in message: raise SessionExpired(e) else: raise e
def fetch_result(self, notebook, snippet, rows, start_over): api = self.get_api() session = _get_snippet_session(notebook, snippet) cell = snippet['result']['handle']['id'] session = self._handle_session_health_check(session) response = self._fetch_result(api, session, cell, start_over) # Close unused sessions if there are any. # Clean here since /fetch_result_data is called only once after the /execute call if self._get_session_info_from_user(): self._close_unused_sessions(snippet.get('type')) return response
def execute(self, notebook, snippet): api = get_spark_api(self.user) session = _get_snippet_session(notebook, snippet) try: response = api.submit_statement(session['id'], snippet['statement']) return { 'id': response['id'], 'has_result_set': True, } except Exception, e: message = force_unicode(str(e)).lower() if 'session not found' in message or 'connection refused' in message or 'session is in state busy' in message: raise SessionExpired(e) else: raise e
def check_status(self, notebook, snippet): api = self.get_api() session = _get_snippet_session(notebook, snippet) cell = snippet['result']['handle']['id'] try: response = api.fetch_data(session['id'], cell) return { 'status': response['state'], } except Exception as e: message = force_unicode(str(e)).lower() if re.search("session ('\d+' )?not found", message): raise SessionExpired(e) else: raise e
def check_status(self, notebook, snippet): api = get_spark_api(self.user) session = _get_snippet_session(notebook, snippet) cell = snippet['result']['handle']['id'] try: response = api.fetch_data(session['id'], cell) return { 'status': response['state'], } except Exception, e: message = force_unicode(str(e)).lower() if 'session not found' in message: raise SessionExpired(e) else: raise e
def download(self, notebook, snippet, format, user_agent=None, max_rows=None, store_data_type_in_header=False): try: api = get_spark_api(self.user) session = _get_snippet_session(notebook, snippet) cell = snippet['result']['handle']['id'] return spark_download(api, session['id'], cell, format, user_agent=None) except Exception, e: raise PopupException(e)
def execute(self, notebook, snippet): api = self.get_api() session = _get_snippet_session(notebook, snippet) try: response = api.submit_statement(session['id'], snippet['statement']) return { 'id': response['id'], 'has_result_set': True, 'sync': False } except Exception as e: message = force_unicode(str(e)).lower() if re.search( "session ('\d+' )?not found", message ) or 'connection refused' in message or 'session is in state busy' in message: raise SessionExpired(e) else: raise e
def fetch_result(self, notebook, snippet, rows, start_over): api = self.get_api() session = _get_snippet_session(notebook, snippet) cell = snippet['result']['handle']['id'] try: response = api.fetch_data(session['id'], cell) except Exception as e: message = force_unicode(str(e)).lower() if re.search("session ('\d+' )?not found", message): raise SessionExpired(e) else: raise e content = response['output'] if content['status'] == 'ok': data = content['data'] images = [] try: table = data['application/vnd.livy.table.v1+json'] except KeyError: try: images = [data['image/png']] except KeyError: images = [] if 'application/json' in data: result = data['application/json'] data = result['data'] meta = [{ 'name': field['name'], 'type': field['type'], 'comment': '' } for field in result['schema']['fields']] type = 'table' else: data = [[data['text/plain']]] meta = [{ 'name': 'Header', 'type': 'STRING_TYPE', 'comment': '' }] type = 'text' else: data = table['data'] headers = table['headers'] meta = [{ 'name': h['name'], 'type': h['type'], 'comment': '' } for h in headers] type = 'table' # Non start_over not supported if not start_over: data = [] return {'data': data, 'images': images, 'meta': meta, 'type': type} elif content['status'] == 'error': tb = content.get('traceback', None) if tb is None or not tb: msg = content.get('ename', 'unknown error') evalue = content.get('evalue') if evalue is not None: msg = '%s: %s' % (msg, evalue) else: msg = ''.join(tb) raise QueryError(msg)
def cancel(self, notebook, snippet): api = get_spark_api(self.user) session = _get_snippet_session(notebook, snippet) response = api.cancel(session['id']) return {'status': 0}
def get_log(self, notebook, snippet, startFrom=0, size=None): api = get_spark_api(self.user) session = _get_snippet_session(notebook, snippet) return api.get_log(session['id'], startFrom=startFrom, size=size)
def execute(self, notebook, snippet): api = self.get_api() session = _get_snippet_session(notebook, snippet) response = self._execute(api, session, snippet.get('type'), snippet['statement']) return response