J'essaie de convertir des données d'un fichier CSV chargé en une table Azure, mais je rencontre des problèmes lorsque l'une des valeurs est chargée dans une chaîne et l'équivalent La valeur dans la table est décimale.Conversion décimale en chaîne pour comparaison dans U-SQL
@ProdOutput =
EXTRACT
[p_description] string,
[p_code] string,
[p_price] string,
[p_colour] string
FROM "testing/martin/items.csv"
USING Extractors.Csv(skipFirstNRows:1);
// @items has been brought in from a table in Data Lake Analytics
@holdings_query =
SELECT ROW_NUMBER() OVER (ORDER BY h.code) AS rn,
h.description AS Description,
h.cd AS Code,
h.priceGBP AS Price,
h.col AS Colour
FROM @items AS h;
@result =
SELECT
p_description == Description ? p_description : String.Concat("Mismatch", p_description, " !! ", Description) AS [Desc],
p_code == Code ? p_description : String.Concat("Mismatch", p_code, " !! ", Code) AS [Code],
p_price == Price ? p_price: String.Concat("Mismatch", p_price, " !! ", Price) AS [Price]
FROM @holdings_query AS h
LEFT OUTER JOIN @prod_data AS p ON h.Code == p.p_code;
Le problème est que je veux la déclaration EXTRACT pour apporter tout génériquement comme une chaîne, comme je vais pas toujours de connaître le type de chacune des colonnes. Donc, quand je fais la comparaison dans la déclaration finale, je voudrais convertir le prix de décimal (comme il est dans le tableau) en chaîne pour comparer avec ce qui sort de la CSV.
J'ai essayé ToString(), ToString ("G"), (chaîne?), Mais ils provoquent tous des erreurs. Qu'est-ce que je fais mal?
TIA Martin
données Exemple:
Items.csv:
"Item1", "IT1", "3,65"
"Item2", "IT2", "4.00"
« Item3 », "IT3", "524,2123"
table @items:
"Item1", "IT1", 3,65
"Item2", "IT2", 4,00
"Item3", "IT3", 524.2123
Pouvez-vous fournir quelques exemples de données s'il vous plaît? – wBob