草庐IT

pyspark-dataframes

全部标签

python - PySpark SQL 中的日期时间范围过滤器

按时间戳字段过滤数据帧的正确方法是什么?我尝试了不同的日期格式和过滤形式,没有任何帮助:pyspark要么返回0个对象,要么抛出它不理解日期时间格式的错误这是我目前得到的:frompysparkimportSparkContextfrompyspark.sqlimportSQLContextfromdjango.utilsimporttimezonefromdjango.confimportsettingsfrommyapp.modelsimportCollectionsc=SparkContext("local","DjangoApp")sqlc=SQLContext(sc)url=

python - 如何从 Pandas DataFrame 中按索引值检索一行?

我已经创建了一个数据框并设置了一个索引:df=pd.DataFrame(np.random.randn(8,4),columns=['A','B','C','D'])df=df.set_index('A')数据框如下所示:BCDA0.687263-1.7005680.1401751.420394-0.212621-0.700442-0.041497-1.034021-0.614214-0.437313-0.464493-1.182492-0.8850620.203892-0.412400-0.578346-1.2226612.014908-0.463674-0.3789100.1324

python - 如何在 Debug模式下调用PySpark?

我已使用ApacheSpark1.4设置了IntelliJIDEA。我希望能够将调试点添加到我的SparkPython脚本中,以便可以轻松调试它们。我目前正在运行这段Python来初始化Spark过程proc=subprocess.Popen([SPARK_SUBMIT_PATH,scriptFile,inputFile],shell=SHELL_OUTPUT,stdout=subprocess.PIPE)ifVERBOSE:printproc.stdout.read()printproc.stderr.read()当spark-submit最终调用myFirstSparkScript

python - 在 Pyspark SQL 中,您需要在哪里使用 lit()?

我试图弄清楚您需要在哪里使用lit值,该值在文档中定义为literalcolumn。以这个udf为例,它返回一个SQL列数组的索引:deffind_index(column,index):returncolumn[index]如果我将一个整数传递给它,我会得到一个错误。我需要将lit(n)值传递到udf以获得数组的正确索引。有没有什么地方可以让我更好地学习何时使用lit以及可能使用col的硬性规则? 最佳答案 为了简单起见,您需要一个Column(可以是使用lit创建的,但它不是唯一的选择)当JVM对应对象需要一列并且Python包

python - 比较 Pandas DataFrame 中的前一行值

importpandasaspddata={'col1':[1,3,3,1,2,3,2,2]}df=pd.DataFrame(data,columns=['col1'])printdfcol10113233142536272我有以下PandasDataFrame,我想创建另一列来比较col1的前一行,看看它们是否相等。最好的方法是什么?它就像下面的DataFrame。谢谢col1match01False13False23True31False42False53False62False72True 最佳答案 您需要eq与shift:d

python - 如何在 pyspark.sql.functions.when() 中使用多个条件?

我有一个包含几列的数据框。现在我想从其他2列派生一个新列:frompyspark.sqlimportfunctionsasFnew_df=df.withColumn("new_col",F.when(df["col-1"]>0.0&df["col-2"]>0.0,1).otherwise(0))这样我只得到一个异常(exception):py4j.Py4JException:Methodand([classjava.lang.Double])doesnotexist它只适用于这样的一个条件:new_df=df.withColumn("new_col",F.when(df["col-1"

python - 合并两个 DataFrame

我有2个想要合并的DataFrames。我查看了文档并尝试执行以下操作,但对如何执行感到困惑。就像我说的我有2个DataFrames:df1:idnametypecurrency0BTA.SApplewoodHardGBp1VOD.SSoftwoodSoftGBp和df2:idBTA.S301.221525VOD.S213.791400我想回来:idnametypecurrencyprice0BTA.SApplewoodHardGBp301.2215251VOD.SSoftwoodSoftGBp213.791400df2中的价格列与df1合并的位置。(只是为了让你知道在我完成时会有更多

python - pandas DataFrame 连接/更新 ("upsert")?

我正在寻找一种优雅的方式将所有行从一个DataFrame附加到另一个DataFrame(两个DataFrame具有相同的索引和列结构),但是如果两个DataFrame中出现相同的索引值,请使用来自的行第二个数据框。所以,例如,如果我开始:df1:ABdate'2015-10-01''A1''B1''2015-10-02''A2''B2''2015-10-03''A3''B3'df2:dateAB'2015-10-02''a1''b1''2015-10-03''a2''b2''2015-10-04''a3''b3'我希望结果是:ABdate'2015-10-01''A1''B1''201

python - pandas 加入 DataFrame 强制后缀?

如何在合并或加入时强制使用后缀。我知道如果发生冲突可以提供一个,但在我的情况下,我将df1与df2合并,这不会导致任何冲突,但然后在使用后缀的df2上再次合并,但我希望每次合并都有一个后缀,因为如果我按照您的想象进行不同的组合,它会变得困惑。 最佳答案 您可以在实际的DataFrame上强制使用后缀:In[11]:df_a=pd.DataFrame([[1],[2]],columns=['A'])In[12]:df_b=pd.DataFrame([[3],[4]],columns=['B'])In[13]:df_a.join(df_

python - 将 Pandas DataFrame 写入 Google Cloud Storage 或 BigQuery

您好,感谢您的时间和考虑。我正在GoogleCloudPlatform/Datalab中开发JupyterNotebook。我创建了一个PandasDataFrame,并希望将此DataFrame写入GoogleCloudStorage(GCS)和/或BigQuery。我在GCS中有一个存储桶,并通过以下代码创建了以下对象:importgcpimportgcp.storageasstorageproject=gcp.Context.default().project_idbucket_name='steve-temp'bucket_path=bucket_namebucket=stor