Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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 对PySpark数据帧中列的所有值进行切片_Python_Dataframe_Pyspark_Apache Spark Sql_Pyspark Sql - Fatal编程技术网

Python 对PySpark数据帧中列的所有值进行切片

Python 对PySpark数据帧中列的所有值进行切片,python,dataframe,pyspark,apache-spark-sql,pyspark-sql,Python,Dataframe,Pyspark,Apache Spark Sql,Pyspark Sql,我有一个数据帧,我想切片该列的所有值,但我不知道如何做 我的数据帧 +-------------+------+ | studentID|gender| +-------------+------+ |1901000200 | M| |1901000500 | M| |1901000500 | M| |1901000500 | M| |1901000500 | M| +-------------+------+ 我已将stude

我有一个数据帧,我想切片该列的所有值,但我不知道如何做

我的数据帧

+-------------+------+
|    studentID|gender|
+-------------+------+
|1901000200   |     M|
|1901000500   |     M|
|1901000500   |     M|
|1901000500   |     M|
|1901000500   |     M|
+-------------+------+
我已将
studentID
转换为字符串,但无法从中删除前190个。我想要低于输出

+-------------+------+
|    studentID|gender|
+-------------+------+
|   1000200   |     M|
|   1000500   |     M|
|   1000500   |     M|
|   1000500   |     M|
|   1000500   |     M|
+-------------+------+
我尝试了下面的方法,但它给了我错误

students_data = students_data.withColumn('studentID',F.lit(students_data["studentID"][2:]))

TypeError: startPos and length must be the same type. Got <class 'int'> and <class 'NoneType'>, respectively.
students\u data=students\u data.withColumn('studentID',F.lit(students\u data[“studentID”][2:]))
TypeError:startPos和length必须是相同的类型。分别得到和。
来自pyspark.sql的导入函数为F
#从OP复制样本数据。
学生\u data=sqlContext.createDataFrame(
[1901000200,'M'],
[1901000500,'M'],
[1901000500,'M'],
[1901000500,'M'],
[1901000500,'M']],
[“学生ID”、“性别”])
#与简单的python列表转换不同,我们需要定义转换中的最后一个位置
#如果您不确定长度,可以定义一个随机的大数字,比如10k。
students\u data=students\u data.withColumn(
“学生ID”,
F.lit(学生数据[“学生ID”][4:10000])。演员阵容(“字符串”))
学生_data.show()
输出:

+---------+------+
|studentID|gender|
+---------+------+
|  1000200|     M|
|  1000500|     M|
|  1000500|     M|
|  1000500|     M|
|  1000500|     M|
+---------+------+

是的,我也是这样做的,但是当我尝试再次将
studentID
转换为int时,它给了我一些奇怪的负整数值。