Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 无法从Pyspark DataFrame中选择超过255列_Python 3.x_Pyspark_Spark Dataframe_Pyspark Sql - Fatal编程技术网

Python 3.x 无法从Pyspark DataFrame中选择超过255列

Python 3.x 无法从Pyspark DataFrame中选择超过255列,python-3.x,pyspark,spark-dataframe,pyspark-sql,Python 3.x,Pyspark,Spark Dataframe,Pyspark Sql,我试图从Pyspark框架中选择500列。获取错误为“SyntaxError:超过255个参数” 下面的方法也试过了,但没用 cols = ["col1","col2","col3",...............,"col500"] Df2 = Df\ .select(cols) 这两种方法都适用于不到255列 注意:我的Python版本是3.6 请告诉我。谢谢。在与@pissall交谈后,下面是两个可行的解决方案,可以选择超过255列: 案例1: cols = ["col1","

我试图从Pyspark框架中选择500列。获取错误为“SyntaxError:超过255个参数”

下面的方法也试过了,但没用

cols = ["col1","col2","col3",...............,"col500"]
Df2 = Df\
     .select(cols)
这两种方法都适用于不到255列

注意:我的Python版本是3.6


请告诉我。谢谢。

在与@pissall交谈后,下面是两个可行的解决方案,可以选择超过255列:

案例1:

cols = ["col1","col2","col3",...............,"col500"]
df2 = df.select(cols)
df.createOrReplaceTempView("df"); 
spark.sql("SELECT col1, col2, ..., col500 FROM df")
案例2:

cols = ["col1","col2","col3",...............,"col500"]
df2 = df.select(cols)
df.createOrReplaceTempView("df"); 
spark.sql("SELECT col1, col2, ..., col500 FROM df")

实际上,我想将数据帧的内容写入Cassandra表,但是Cassandra表中的列顺序不同,所以使用SELECT我想重新排列列。如果我将选择两次,那么我需要再次连接两个数据帧,并且顺序将不匹配。第二种情况不应导致异常。你真的手工写了255列吗?有什么理由这样做吗?如果希望顺序与模式匹配,只需传递它而不显式枚举。如果你真的想手写的话<代码>df.createOrReplaceTempView(“df”);spark.sql(“从df中选择col1,col2,…,col500”)@pissall这是不正确的。第二个案例对我有效,因为我已经修复了一些其他原因,第一次通过异常。还有你建议的SQL选项,也很好。。。我也会试试。。。谢谢你的建议。但是你在哪里定义了df.dataframe呢