У меня есть программа Pyspark, где в конце мне нужно добавить строки в таблицу Bigquery. Мне удалось создать таблицу и загрузить в нее строки в первый раз, но я не знаю, как продолжать добавлять дополнительные строки.
Это мой фрагмент кода для загрузки в BQ в первый раз -
mydf.write.format('bigquery') \
.option('table', 'my-project.my-dataset.my-table') \
.option("temporaryGcsBucket","my-bucket") \
.save()
Может кто-нибудь помочь мне здесь?
Полное исключение, которое я получаю при "добавлении" строк -
Причина: org. apache .spark .SparkException: задача не выполнена во время записи строк. в орг. apache .spark. sql .execution.datasources.FileFormatWriter $ .org $ apache $ spark $ sql $ исполнительный $ источники данных $ FileFormatWriter $$ executeTask (FileFormatWriter. scala: 257) в орг. apache .spark. sql .execution.datasources.FileFormatWriter $$ anonfun $ write $ 1.apply (FileFormatWriter. scala: 170) в org. apache .spark. sql .execution.datasources.FileFormatWriter $$ anonfun $ write $ 1.apply (FileFormatWriter. scala: 169) в org. apache .spark.scheduler.ResultTask.runTask (ResultTask. scala: 90) в org. apache .spark.scheduler.Task .run (Задача. scala: 123) в орг. apache .spark.executor.Executor $ TaskRunner $$ anonfun $ 10.apply (Исполнитель. scala: 408) в орг. apache .spark.util .Utils $ .tryWithSafeFinally (Utils. scala: 1360) в org. apache .spark.executor.Executor $ TaskRunner.run (Executor. scala: 414) в java .util.concurrent.ThreadPoolExecutor. runWorker (ThreadPoolExecutor. java: 1149) в java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. java: 624) ... еще 1 причина: net .razorvine.pickle.PickleException : ожидаемые нулевые аргументы для построения ClassDict (для rdkit.Chem.rdchem.Mol) в net .razorvine.pickle.objects.ClassDictConstructor.construct (ClassDictConstructor. java: 23) в net .razorvine.pickle.Unpickler .load_reduce (Unpickler. java: 707) в net .razorvine.pickle.Unpickler.dispatch (Unpickler. java: 175) в net .razorvine.pickle.Unpickler.load (Unpickler. java : 99) в net .razorvine.pickle.Unpickler.loads (Unpickler. java: 112) в org. apache .spark. sql .execution. python .BatchEvalPythonExec $$ anonfun $ оценить $ 1 .apply (BatchEvalPythonExe c. scala: 90) в org. apache .spark. sql .execution. python .BatchEvalPythonExec $$ anonfun $ оценивать $ 1.apply (BatchEvalPythonExe c. scala: 89) в scala .collection.Iterator $$ anon $ 12.nextCur (Iterator. scala: 435) в scala .collection.Iterator $$ anon $ 12.hasNext (Iterator. scala: 441) в scala .collection.Iterator $$ anon $ 11.hasNext (Iterator. scala: 409) в scala .collection.Iterator $$ anon $ 11.hasNext (Iterator. scala: 409) в org. apache .spark. sql .c atalyst.expressions.GeneratedClass $ GeneratedIteratorForCodegenStage2.processNext (неизвестный источник) в org. apache .spark. sql .execution.BufferedRowIterator.hasNext (BufferedRowIterator. java: 43) в org. apache .spark. 1072 * .execution.WholeStageCodegenExec $$ anonfun $ 13 $$ anon $ 1.hasNext (WholeStageCodegenExe c. scala: 636) в орг. org $ apache $ spark $ sql $ выполнение $ источники данных $ FileFormatWriter $$ executeTask $ 3.apply (FileFormatWriter. scala: 244) в org. apache .spark. sql .execution.datasources.FileFormatWriter $$ anonfun $ org $ apache $ spark $ sql $ выполнение $ источники данных $ FileFormatWriter $$ executeTask $ 3.apply (FileFormatWriter. scala: 242) в org. apache .spark.util.Utils $ .tryWithSafeFinallyAndFailureCallbacks (Utils. scala): 1394) at or.. apache .spark. sql .execution.datasources.FileFormatWriter $ .org $ apache $ spark $ sql $ исполнительный $ источники данных $ FileFormatWriter $$ executeTask (FileFormatWriter. scala: 248)