Зацикливание более миллиона строк в таблице Scala - Python Databricks - PullRequest
0 голосов
/ 14 декабря 2018

Я использую Databricks, и я немного новичок в этом типе работы.Также: если я поставлю это под неправильной меткой, скажите, пожалуйста, чтобы я мог правильно пометить этот вопрос.

Кто-то создал Scala-код, в результате которого появилась таблица с более чем одним миллионом строк местоположений (каждая сделка отличается).

Моя цель - извлечь текст местоположения каждой строки (в строку), используя SQL и Python:

from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)

df = sqlContext.sql("SELECT value FROM scansources")

С этого момента я хотел добавить этов кадре данных Pandas, чтобы я мог извлечь значение каждой строки, используя цикл.(Мне нужен этот цикл для отдельного извлечения из-за дальнейшего анализа).

Я использовал:

df.toPandas()

, и с этого момента я мог легко извлечь каждое значение строки.Я проверил это с 50 строками, и оно работало нормально.

Вот проблема: тестовые строки, где только 50, реальные строки - более миллиона.Если я использую здесь df.toPandas (), задание на блоки данных не может быть выполнено из-за ограничения на драйвер в 4,0 ГБ.Увеличение этого предела не очень эффективно.

На самом деле мне нужен код, который может зацикливаться:

sqlContext.sql("SELECT value FROM scansources")

, чтобы извлекать значение каждой строки один за другим и добавлять этов список.Эта одна за другой часть очень важна, поскольку я использую их для дальнейшего анализа.

Надеюсь, вы понимаете мой вопрос и знаете решение.Скажите, пожалуйста, если что-то не понятно.

PS Я не программирую на Scala или SQL, но если у вас есть решение на Scala или SQL, то это тоже приветствуется.Однако список должен быть доступен для Python, поскольку я использую его для дальнейшего анализа.

С уважением,

Ганеш

...