小编Shu*_*hra的帖子

如何在pyspark中更改数据框列名?

我来自pandas背景,习惯于将CSV文件中的数据读入数据帧,然后使用简单命令将列名更改为有用的东西:

df.columns = new_column_name_list
Run Code Online (Sandbox Code Playgroud)

但是,在使用sqlContext创建的pyspark数据帧中,这同样不起作用.我可以轻松解决的唯一解决方案如下:

df = sqlContext.read.format("com.databricks.spark.csv").options(header='false', inferschema='true', delimiter='\t').load("data.txt")
oldSchema = df.schema
for i,k in enumerate(oldSchema.fields):
  k.name = new_column_name_list[i]
df = sqlContext.read.format("com.databricks.spark.csv").options(header='false', delimiter='\t').load("data.txt", schema=oldSchema)
Run Code Online (Sandbox Code Playgroud)

这基本上是定义变量两次并首先推断模式然后重命名列名,然后再次使用更新的模式加载数据帧.

像熊猫一样,有更好更有效的方法吗?

我的火花版是1.5.0

python apache-spark pyspark pyspark-sql

159
推荐指数
12
解决办法
22万
查看次数

检查shell脚本中的字符串是否既不是空也不是空格

我试图运行以下shell脚本,它应该检查字符串既不是空格也不是空.但是,我得到的所有3个字符串的输出都相同.我尝试过使用"[["语法,但无济于事.

这是我的代码:

str="Hello World"
str2=" "
str3=""

if [ ! -z "$str" -a "$str"!=" " ]; then
        echo "Str is not null or space"
fi

if [ ! -z "$str2" -a "$str2"!=" " ]; then
        echo "Str2 is not null or space"
fi

if [ ! -z "$str3" -a "$str3"!=" " ]; then
        echo "Str3 is not null or space"
fi
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

# ./checkCond.sh 
Str is not null or space
Str2 is not null or space
Run Code Online (Sandbox Code Playgroud)

bash shell freebsd

82
推荐指数
5
解决办法
24万
查看次数

无法使用pacifist在Mac OS X 10.6.8上使用Java 1.7.0.45运行线程java jar文件

我使用Pacifist [http://www.charlessoft.com/] 在Mac OS X 10.6.8上安装了Java 1.7.0_45但是我无法运行我下载的jar文件.jar文件是一个线程应用程序.

我得到的错误消息是:

java -jar context.jar
2013-10-31 14:14:41.898 java[330:a07] *** NSInvocation: warning: object 0x109356390 of class 'ThreadUtilities' does not implement methodSignatureForSelector: -- trouble ahead
2013-10-31 14:14:41.900 java[330:a07] *** NSInvocation: warning: object 0x109356390 of class 'ThreadUtilities' does not implement doesNotRecognizeSelector: -- abort
Trace/BPT trap
Run Code Online (Sandbox Code Playgroud)

无论如何我可以运行jar.我已正确设置JAVA_HOME路径,java -version显示1.7.0_45作为版本.

相同的应用程序在Windows Java 1.7.0_45和Linux Java 1.7上都能正常运行.

对解决方案和给定关键字的Web搜索返回的结果非常少,并且没有任何特定解决方案.我是mac的新手,所以我无法完全理解这个问题.

或者,无论如何,我可以从Mac中的文件夹运行Java,就像我可以在Windows和Linux中一样,只需提取Java内容并更改JAVA_HOME即可.如果可以,那么我应该能够运行我的JAR.

java macos multithreading jar osx-snow-leopard

6
推荐指数
1
解决办法
2195
查看次数

使用Inno Setup [fx:deploy] java.io.IOException本机打包fx-jar时出错

更新:

我发现问题是因为Inno Setup.安装程序已创建,但Inno Setup会自动尝试运行需要管理员权限的安装程序.由于未给出这些权限,因此安装程序失败.

如果我将权限授予使用Inno Setup准备的任何其他安装程序,则在提供权限几分钟后创建本机程序包.但如果我在较长时间后尝试再次发出错误.

原版的

我试图exe在eclipse中从我的JavaFX项目中打包我的文件.我使用JDK 1.8.0_25和Inno Setup 5使用build.xmlAnt脚本进行创建.

fx:deploy尝试exe使用Inno Setup 创建文件时,我的代码到达了出现此错误的部分.我的Inno安装程序位于系统路径中,当我检查任务管理器时,我看到Inno Setup实际上正在使用.

这是我得到的完整堆栈跟踪:

Using base JDK at: C:\Program Files\Java\jdk1.8.0_25\jre\..\jre
[fx:deploy] java.io.IOException: Exec failed with code 2 command [[C:\Program Files (x86)\Inno Setup 5\iscc.exe, /oE:\Code\Java\ProjectHome\build\deploy\bundles, C:\Users\SHUBHA~1\AppData\Local\Temp\fxbundler7925821782057479088\images\win-exe.image\ProjectHome.iss] in C:\Users\SHUBHA~1\AppData\Local\Temp\fxbundler7925821782057479088\images\win-exe.image
[fx:deploy]     at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:165)
[fx:deploy]     at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:138)
[fx:deploy]     at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:132)
[fx:deploy]     at com.oracle.tools.packager.windows.WinExeBundler.buildEXE(WinExeBundler.java:533)
[fx:deploy]     at com.oracle.tools.packager.windows.WinExeBundler.bundle(WinExeBundler.java:349)
[fx:deploy]     at com.oracle.tools.packager.windows.WinExeBundler.execute(WinExeBundler.java:172)
[fx:deploy]     at com.sun.javafx.tools.packager.PackagerLib.generateNativeBundles(PackagerLib.java:511)
[fx:deploy]     at com.sun.javafx.tools.packager.PackagerLib.generateDeploymentPackages(PackagerLib.java:476)
[fx:deploy]     at com.sun.javafx.tools.ant.DeployFXTask.execute(DeployFXTask.java:265)
[fx:deploy]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
[fx:deploy]     at …
Run Code Online (Sandbox Code Playgroud)

java ant javafx inno-setup java-8

5
推荐指数
1
解决办法
2528
查看次数