Powershell Hadoop配置单元查询中的双引号

Powershell Hadoop配置单元查询中的双引号,powershell,azure,hive,azure-hdinsight,Powershell,Azure,Hive,Azure Hdinsight,我可以在以下查询中使用双引号-> $subscriptionName = "***" $clusterName = "***" $queryString = "SELECT city FROM logs WHERE city =""New York"";" Use-AzureHDInsightCluster $clusterName Invoke-Hive -Query $queryString 但我无法在以下PowerShell Comamnds中使用引号- $subscriptionNa

我可以在以下查询中使用双引号->

$subscriptionName = "***"
$clusterName = "***" 
$queryString = "SELECT city FROM logs WHERE city =""New York"";"
Use-AzureHDInsightCluster $clusterName
Invoke-Hive -Query $queryString
但我无法在以下PowerShell Comamnds中使用引号-

$subscriptionName = "***"
$storageAccountName = "***"
$containerName = "***"
$clusterName = "***"

$queryString = "SELECT city FROM logs WHERE city =""New York"";"

$hiveJobDefinition = New-AzureHDInsightHiveJobDefinition -Query $queryString

Select-AzureSubscription $subscriptionName
$hiveJob = Start-AzureHDInsightJob -Cluster $clusterName -JobDefinition $hiveJobDefinition

Wait-AzureHDInsightJob -Job $hiveJob -WaitTimeoutInSeconds 36000

Get-AzureHDInsightJobOutput -Cluster $clusterName -JobId $hiveJob.JobId -StandardOutput
它给了我以下错误-


请告诉我为什么会有这种零星的行为。两个实现都会创建作业,那么为什么一个实现接受双引号,而另一个不接受双引号呢。

尝试两种引用查询的替代方法,看看是否有进一步的结果:

单引号

$queryString = 'SELECT city FROM logs WHERE city ="New York";'
反勾选转义

$queryString = "SELECT city FROM logs WHERE city =`"New York`";"
我的猜测是,
Start AzureHDInsightJob
以不同的方式解释字符串

更新1

很抱歉,听到上述内容无效,请尝试(单引号字符串):

更新2

查看您尚未指定作业名称,如果您未指定作业名称,则以下情况适用:

The name of the Hive job being defined. If the name is not specified, 
it is "Hive: <first 100 characters of Query>" by default.
正在定义的配置单元作业的名称。如果未指定名称,
默认情况下,它是“蜂巢”。

因此,您的作业名称将包含您的查询,请尝试指定作业名称以查看这是否有帮助

你们的两个建议都失败了,在我的原始帖子中提到了同样的错误。但在查询中使用单引号并不是我的原始问题。我想使用双引号,我想你没有领会我的意思。对不起,我以为你想让第二个命令工作。我的猜测是,新AzureHDInsightHiveJobDefinition的实现不适合双引号。为什么你特别需要双引号?单引号也不起作用吗?我的数据有双引号。我的困惑是,为什么我最初的帖子中的两个实现不同。他们应该做同样的工作。
The name of the Hive job being defined. If the name is not specified, 
it is "Hive: <first 100 characters of Query>" by default.