在Scala表中循环超过一百万行-Python Databricks

时间:2018-12-14 00:00:33

标签: python-3.x scala pyspark databricks

我正在使用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 GB,则无法完成databricks作业。增加此限制不是很有效。

我真正需要的是可以循环的代码:

sqlContext.sql("SELECT value FROM scansources")

提取每一行的值,并将其添加到列表中。这一步很重要,因为我将它们用于进一步分析。

希望您能理解我的问题并知道解决方法。请告诉我是否不清楚。

P.S。我没有用Scala或SQL编程,但是如果您有使用Scala或SQL的解决方案,那也欢迎。但是,该列表必须是Python可以访问的,因为我将其用于进一步分析。

最诚挚的问候,

Ganesh

0 个答案:

没有答案