From 14e49c47b2ea384a581a6068c14cd32a1f27f9aa Mon Sep 17 00:00:00 2001 From: Ghislain Fourny Date: Wed, 20 Aug 2025 14:33:09 +0200 Subject: [PATCH 1/2] Don't save lastResult in session.py. --- src/jsoniq/session.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/jsoniq/session.py b/src/jsoniq/session.py index 6ff78a4..f194ecd 100644 --- a/src/jsoniq/session.py +++ b/src/jsoniq/session.py @@ -200,8 +200,7 @@ def bindDataFrameAsVariable(self, name: str, df): def jsoniq(self, str): sequence = self._jrumblesession.runQuery(str); - self.lastResult = SequenceOfItems(sequence, self); - return self.lastResult; + return SequenceOfItems(sequence, self); def __getattr__(self, item): return getattr(self._sparksession, item) \ No newline at end of file From a4dca43036b6d6b96c21ed135c92c989cfad88d8 Mon Sep 17 00:00:00 2001 From: Ghislain Fourny Date: Wed, 20 Aug 2025 14:34:37 +0200 Subject: [PATCH 2/2] Saving lastResult. --- src/jsoniq/sequence.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/jsoniq/sequence.py b/src/jsoniq/sequence.py index 7d9993a..442fad2 100644 --- a/src/jsoniq/sequence.py +++ b/src/jsoniq/sequence.py @@ -42,24 +42,28 @@ def first(self): return tuple(self.getFirstItemsAsList(self._rumblesession.getRumbleConf().getResultSizeCap())) def json(self): - return tuple([json.loads(l.serializeAsJSON()) for l in self._jsequence.getAsList()]) + self._rumblesession.lastResult = tuple([json.loads(l.serializeAsJSON()) for l in self._jsequence.getAsList()]) + return self._rumblesession.lastResult def rdd(self): rdd = self._jsequence.getAsPickledStringRDD() rdd = RDD(rdd, self._sparkcontext) - return rdd.map(lambda l: json.loads(l)) + self._rumblesession.lastResult = rdd.map(lambda l: json.loads(l)) + return self._rumblesession.lastResult def df(self): if (not "DataFrame" in self._jsequence.availableOutputs()): sys.stderr.write(self.schema_str) return None - return DataFrame(self._jsequence.getAsDataFrame(), self._sparksession) + self._rumblesession.lastResult = DataFrame(self._jsequence.getAsDataFrame(), self._sparksession) + return self._rumblesession.lastResult def pdf(self): if (not "DataFrame" in self._jsequence.availableOutputs()): sys.stderr.write(self.schema_str) return None - return self.df().toPandas() + self._rumblesession.lastResult = self.df().toPandas() + return self._rumblesession.lastResult def count(self): return self._jsequence.count()