我正在使用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