3
我正尝试加载接近1000条记录的现场催化剂数据。如下所示的代码我使用:有没有办法将超过255列加载到Spark Dataframe?
from pyspark.sql.types import *
from pyspark.sql import Row
sqlContext = SQLContext(sc)
omni_rdd = sc.textFile('hdfs://user/temp/sitecatalyst20170101.gz')
omni_rdd_delim = omni_rdd.map(lambda line: line.split("\t"))
omni_df = omni_rdd_delim.map(lambda line: Row(
col_1 = line[0]
, col_2 = line[1]
, col_3 = line[2]
, ..
, ..
, col_999 = line[998]
)).toDF()
我来跨越以下错误:
File "<stdin>", line 2
SyntaxError: more than 255 arguments
有没有什么方法可以让我所有的1000列加载到数据帧我?
-V
它一个很好的答案使用它。 –
这会导致以下错误:** Traceback(最近呼叫的最后一个): 文件“”,第1行,在 文件“/opt/spark/python/pyspark/sql/context.py”,第64行,在toDF return sqlContext.createDataFrame(self,schema,sampleRatio) 文件“/opt/spark/python/pyspark/sql/context.py”,第423行,在createDataFrame中 rdd,schema = self._createFromRDD(data,模式,samplingRatio) 文件 “/opt/spark/python/pyspark/sql/context.py”,线315,在_createFromRDD struct.fields [I]。名称=名 IndexError:列表索引超出范围** 任何想法如何我们可以纠正这? –
user2738809